Я пытаюсь запустить beeb звук непрерывно, пока пользователь не нажал кнопку. Я добавил файл alarm.mp3 в raw folder
. Но этот файл мультимедиа не выполняется. Я получаю IllegalStateException
.IllegalStateException в Android MediaPlayer исполнении
Это мой код:
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