我使用以下代码播放声音,过了一段时间它会停止播放声音,这是因为有太多媒体播放器打开的实例我相信所以我添加了额外的 mp.release();
它只是崩溃我的应用程序(它目前被注释掉了) .
这是我正在使用的实际代码 .
public void audioPlayer(String path, String fileName){
//set up MediaPlayer
MediaPlayer mp = new MediaPlayer();
if (mp!=null){
// mp.release();
}
try {
mp.setDataSource(path+"/"+fileName);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
}
并在我的应用程序中调用它我使用:
audioPlayer(sdcard + "/soundboard","s1sound1.ogg");
任何人都可以告诉我为什么它会崩溃,我需要做些什么来解决它?
1 回答
来自documentation,
因此,您无法对其执行任何操作 . 如果你创建一个新的
MediaPlayer
对象,无论如何都不需要调用它 .相反,你可以这样做:
并将
MediaPlayer mp;
声明为类成员,而不是本地成员 .