Android 音频文件引发非法状态异常
我在这里读过任何一个问题,但没有一个能解决我的问题。我正在尝试播放媒体文件,但它显示: E/MediaPlayer(554):在状态8下调用prepareAsync W/System.err(554): java.lang.IllegalStateException W/System.err(554):位于 android.media.MediaPlayer.prepare(本机方法) 我找不出问题出在哪里。。在模拟器上工作(抛出异常),在平板电脑上强制关闭。我看到一篇帖子说我不应该使用prepare方法,但若我不这样做,一切都不会改变 以下是代码和错误:Android 音频文件引发非法状态异常,android,Android,我在这里读过任何一个问题,但没有一个能解决我的问题。我正在尝试播放媒体文件,但它显示: E/MediaPlayer(554):在状态8下调用prepareAsync W/System.err(554): java.lang.IllegalStateException W/System.err(554):位于 android.media.MediaPlayer.prepare(本机方法) 我找不出问题出在哪里。。在模拟器上工作(抛出异常),在平板电脑上强制关闭。我看到一篇帖子说我不应该使用prep
MediaPlayer player = MediaPlayer.create(MyAct.this, R.raw.zboo);
player.setLooping(false);
try {
player.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player.start();
E/MediaPlayer(522):在状态8中调用prepareAsync
W/System.err(554):java.lang.IllegalStateException
W/System.err(554):在android.media.MediaPlayer.prepare(本机)
(方法)
提前感谢。首先,您不需要调用prepare(),因为这是由create完成的。 来自Android文档
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start(); // no need to call prepare(); create() does that for you
其次,如果情况需要您进行准备,则使用prepareAsync(),否则UI可能会挂起。异步准备在后台线程上执行准备部分,并在完成后返回结果
检查您的媒体文件,确保其可播放。我也面临同样的问题。当我一个接一个地编写这四个方法时,而不是在这四行之间插入一些逻辑(代码),问题就解决了
mediaPlayer.reset();
mediaPlayer.setDataSource("songpath");
mediaPlayer.prepare();
mediaPlayer.start();
您希望在调用mp.prepare()之前编写mp.reset(),并且所有方法一行一行地调用
谢谢原来我的文件不可播放:)