ボタンを押すまでbeebサウンドを連続して実行しようとしています。私はraw folder
にalarm.mp3ファイルを追加しました。しかし、このメディアファイルは実行されません。私はIllegalStateException
を得ています。Android MediaPlayerの実行時にIllegalStateExceptionが発生する
これは私のコードです:
MediaPlayer mp = new MediaPlayer();
try{
mp.release();
mp = MediaPlayer.create(this,R.raw.alarm);
mp.prepare();
mp.setVolume(1f, 1f);
mp.setLooping(true);
mp.start();
}catch(IllegalStateException e){
System.out.println("Test Exception "+e);
}catch (IOException e) {
// TODO: handle exception
System.out.println("Test Exception "+e);
}
私はmp3がasset folder
にファイルとそれを再生しようと付け加えたが、それでも私は、同じ例外を取得しています。
これは私が使用するコードです:
MediaPlayer mp = new MediaPlayer();
try{
mp.release();
AssetFileDescriptor afd=context.getAssets().openFd("alarm.mp3s");
mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.prepare();
mp.setVolume(1f, 1f);
mp.setLooping(true);
mp.start();
}catch(IllegalStateException e){
System.out.println("Test Exception "+e);
}catch (IOException e) {
// TODO: handle exception
System.out.println("Test Exception "+e);
}
任意の助けがにappriciatedされるだろう。より多くの情報が必要な場合は、私に知らせてください。
UPDATE:
try{
mp = MediaPlayer.create(context,R.raw.alarm);
mp.setVolume(1f, 1f);
mp.setLooping(true);
mp.start();
}catch(IllegalStateException e){
System.out.println("Test Exception "+e);
}
ユーザーがボタンをクリックすると:
mp.stop();
if(!mp.isPlaying()){
mp.release();
}
これは例外である:
10-04 12:50:06.105: I/System.out(14074): Test Exception java.lang.IllegalStateException
'release()'が呼ばれた後、 'MediaPlayer'は使用できません。 'MediaPlayer'で完全に終了し、そのリソースが不要になったら、メソッドを呼び出します。 – Onik
ログを記録し、その短い行だけでなく、_full_ stacktraceを送信します。 – njzk2