質問

アプリケーションを実行すると、「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");
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top