javax.microedition.media.Playerを使用した場合、アプリケーションは例外でクラッシュ

StackOverflow https://stackoverflow.com/questions/1459681

  •  12-09-2019
  •  | 
  •  

質問

私は、Bluetoothからのデータを処理し、Webサービスに送信するアプリケーションを持っています。最近のアプリケーションにサウンドを追加する要求がありました。アプリケーションがデータのバッチを処理し、プレイヤーは私が取得数秒後に絶えず再生されている今、ときに例外を「アプリケーションが応答しません」。そして、処理を終了します。ログでは、私は、この例外の後にログインしForcedStackTrace例外をたくさん見ることができます。

音は別のスレッドで再生されます。アプリがサウンドを再生したり、短いサウンドを再生しない場合 - すべてが正常に動作します。起こってこの例外を回避する方法はありますか?なぜそれが起こっているのでしょうか?

InputStream mediaStream = null;
try {
    mediaStream = getClass().getResourceAsStream(relativePath);
    getLogger().log("setting player _ " + _audioType);
    setPlayer(Manager.createPlayer(mediaStream, _audioType));
    _currentPlayer.addPlayerListener(this);
    _currentPlayer.setLoopCount(1);
    _currentPlayer.realize();
    VolumeControl vc = (VolumeControl) _currentPlayer
            .getControl("VolumeControl");
    if (vc != null) {
        vc.setLevel(_voumeLevel);
    }
    _currentPlayer.prefetch();
    _currentPlayer.start();
} catch (Exception e) {
}

(BBのフォーラムからクロスポスト)

役に立ちましたか?

解決

別のスレッドで実行すると、内側Playerの実装を使用して多くのスレッドを持つというし、キューの方法でアイテムを演じることになる、自分のPlayerManagerを実装することで解決しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top