Android の OpenCore インスタンスの最大数を超えています
-
19-09-2019 - |
質問
アプリケーションを実行すると、「OpenCore インスタンスの最大数を超えています」エラーが表示されます。このエラーを解決する方法。ありがとう
解決
MediaPlayer の複数のインスタンスをインスタンス化すると、上記のことが発生します。
について読むべきです メディアプレーヤーのライフサイクルとそのさまざまな状態
- たとえば、クラス変数スコープで 1 つのメディア プレーヤーを定義します。
- 必要に応じて、Oncreate メソッドおよび OnResume メソッドでインスタンス化します。
- オーディオを再生する関数で、.reset メソッドを使用してメディア プレーヤーをアイドル状態にします。
- .setDataSource または同等のものを使用して初期化された状態にします
- 次に、準備された状態に向けて準備します
- 次に、オーディオの再生を開始します
- .stop() などで停止します
- 終了したら、.release 関数を使用してオーディオ リソースを解放します。
メディア プレーヤーはクラス スコープ変数として定義され、OnCreate() メソッドでインスタンス化されます。
private void startPlayingAudio()
{
try {
Uri path1 = Uri.parse("android.resource://com.yourpackagehere./" + R.raw.beep);
mp.reset(); // reset to idle state
mp.setDataSource(this, path1); // from idle to initialised state
mp.prepare();
mp.start();
} catch (Exception ioe) {
Log.e(LOG_TAG, "Error playing the beep sound");
}
}
所属していません StackOverflow