我试图连续运行beeb声音,直到用户按下按钮。我添加了alarm.mp3文件到raw folder
。但是这个媒体文件没有执行。我得到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