我的活动有一个异步准备视频的VideoView:
Uri mUri = "uri to streaming video"
VideoView mVideoView = (VideoView) rootView.findViewById(R.id.videoView);
mVideoView.setOnErrorListener(this);
mVideoView.setOnCompletionListener(this);
mVideoView.setVideoURI(mUri);
mVideoView.setMediaController(null);
mVideoView.setOnPreparedListener(this);
当它正在“准备”时我会显示一个ProgressDialog ...如果我在此状态下按下后退按钮,则会向ADB打印以下错误,并且活动会在黑屏上等待一小段时间静默崩溃:
E/MediaPlayer( 2204): stop called in state 4
E/MediaPlayer( 2204): error (-38, 0)
W/ActivityManager( 59): Activity pause timeout for HistoryRecord{45080368 com.myapp.VideoPlayerActivity}
阻止VideoView准备视频以便退出活动的最佳方法是什么?
注意:在调用正在准备的视频的回调之前,我无法访问实际的MediaPlayer对象:
@Override
public void onPrepared(MediaPlayer player)
...当MediaPlayer / VideoView正在“准备”时没有发生。
答案 0 :(得分:2)
我没有对自己进行测试,但是当你准备状态时,你应该能够reset()
MediaPlayer。
答案 1 :(得分:1)
在按下后退按钮时执行MediaPlayer.stop()之前尝试调用MediaPlayer.prepare()(实现onPause或onStop活动方法)