javax.microedition.media.Playerを使用した場合、アプリケーションは例外でクラッシュ
-
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を実装することで解決しました。
所属していません StackOverflow