我試圖連續運行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