1

再生ボタンをクリックしてオーディオを繰り返し再生すると、MediaPlayer でエラー (-38,0) が返されます。初めて音楽パッドのようなアプリを作成しようとしていますが、最初は正常に再生されますが、複数回クリックするとハング モードになり、エラーが表示されます。

4

2 に答える 2

0

もう一度クリックすると、同じソースでメディアプレーヤーをもう一度準備するだけだと思います。古いデータを解放する必要があります

mMediaPlayer.release();

または、同じオーディオの場合は、使用するだけでよい

mMediaPlayer.seekTo(0)

もう一度最初にジャンプするには、別の準備ラウンドは必要ありません。

Soundpoool は小さなファイルには最適ですが、大きなオーディオ ファイルを処理することはできません。

アップデート:

実際、私のアプリの1つで同じエラーが発生しました:だから私の間違いは

mMediaPlayer.stop();
mMediaPlayer.seekTo(0);

停止後に再度準備する必要があるため、これは正しくありません。正しい方法は

mMediaPlayer.pause();
mMediaPlayer.seekTo(0);

いつものように公式ドキュメントはとても良いです

http://developer.android.com/reference/android/media/MediaPlayer.html

于 2012-10-14T02:53:49.427 に答える
0

メディア プレーヤーのバッファがいっぱいになっています。SoundPool代わりに使用

 int SoundArr[] = { R.raw.birds_whistling, R.raw.come_bye,
            R.raw.cute_whistle, R.raw.kill_bill_whistle, R.raw.look_back,
             };

SoundPool mSoundPool;
HashMap<Integer,Integer> mSoundPoolMap;
AudioManager  mAudioManager;

 mSoundPool=(SoundPool) SoundImageAdaptor.mSoundPool;
 mSoundPoolMap =SoundImageAdaptor.mSoundPoolMap;//i'm using a grid view adaptor
 mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
/* code to that ensures the sound plays even when media player buffer gets full*/
                 if(!(mSoundPoolMap.containsKey(position)))
                 addSound(position, SoundArr[position]);
                 playSound(position);

このリンクも確認できますゲームでSoundPoolを適切に使用するには?

于 2012-10-13T10:40:35.783 に答える