在每个活动中,我都会将mp4视频从外部存储加载到videoview中。在第一个活动中,视频是完美的,在第二个活动中,视频是乱码,然后在第三个活动中,视频又是完美的。在加载新活动之前,我是否需要以某种方式清理videoview?在清晰视频之后,视频始终是乱码,在乱码视频之后,视频始终是清晰的。
我尝试设置onpreparedlistener,然后用onprepared方法启动mediaplayer,但其他所有视频仍然乱码。但是,当我使用onprepared方法时,上一个活动中的视频仍然可见,并且只有在新视频乱码的情况下才会运行。当新活动使旧视频变黑时,新视频不会被篡改。
视频似乎每隔一段时间就会从之前的活动持续到新的活动。我很困惑。
发布于 2011-09-24 04:06:20
我之前遇到过一个类似的问题--现在发生的情况是,在你开始播放之前,你的视频没有完全缓冲或处于就绪状态。请看一下MediaPlayer here的状态图。
This几乎就是你需要做的。
它会一直持续到下一个活动,因为媒体播放器会一直播放它的内容,直到播放完为止。执行以下操作:
@Override
public void onDestroy() {
super.onDestroy();
if (mediaPlayerInstance.isPlaying())
mediaPlayerInstance.stop();
}这应该可以解决你的问题了!
发布于 2011-09-25 09:48:23
好了,我已经把它弄好了。在开始新的活动之前,我需要重置与videoview关联的mediaPlayer。我猜这意味着我的新活动正在使用相同的videoview,因此在新活动中使用相同的媒体播放器。
尽管调用reset很有效,但很难相信这就是我应该做的事情。似乎videoview是专门设计的,所以我不必管理mediaplayer,因为访问mediaplayer的唯一方法是通过onPreparedListener……
https://stackoverflow.com/questions/7534179
复制相似问题