【发布时间】:2011-11-29 14:18:28
【问题描述】:
虽然我使用几乎相同的代码来播放两个视频,但第一个可以完美运行,但第二个不能。当我按下下一个视频按钮时,程序崩溃了:
WARN/System.err(15726): java.lang.IllegalStateException
WARN/System.err(15726): at android.media.MediaPlayer.setDataSource(Native Method)
源代码:
第一个播放代码:
mediaPlayer = new MediaPlayer();
playURI = receiveIntent.getStringExtra("playURI");
showDebugInfo("play uri "+playURI);
Log.e("Gplayer on create", "play uri "+playURI);
try {
mediaPlayer.setDataSource(playURI);
} catch (IllegalArgumentException e) {
Log.v(LOGTAG, e.getMessage());
finish();
} catch (IllegalStateException e) {
Log.v(LOGTAG, e.getMessage());
finish();
} catch (IOException e) {
Log.v(LOGTAG, e.getMessage());
finish();
}
当按下下一个按钮时,它会运行以下代码:
String uri = listAdapter.getItem(position).getItem().getFirstResource().getValue();
showDebugInfo(" Uri "+uri);
if(mediaPlayer != null){
mediaPlayer.stop();
}
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(uri);
mediaPlayer.prepareAsync();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
finish();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
finish();
}
为什么会这样?我只检查了两个部分的不同之处,第一个是新的媒体播放器,第二个是让媒体播放器停止并重置然后相同。
【问题讨论】:
-
“几乎相同的代码”。你能把它们都展示出来吗?另外,您如何处理“下一个视频”按钮单击处理程序?你拥有它的方式应该可以工作。
-
很多时候这些类型的错误与您尝试播放的任何媒体的文件权限有关..
-
如果您更改视频的顺序,让崩溃的视频先播放会怎样?有问题的总是第二个视频,还是那个特定的视频?
-
@ChadSchultz 它总是第二个有问题的视频而不是特定的。
-
@ThunderRabbit 我觉得不是这样,因为有两个视频 A 和 B ,不管我先玩哪个,它都很好,而第二个则没有
标签: android video media-player