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