我有一个 Activity,它有一个异步准备视频的 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,并且该 Activity 会在黑屏上短暂等待并安静地崩溃:
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 准备视频以便退出 Activity 的最佳方法是什么?
注意:在调用正在准备的视频的回调之前,我无权访问实际的 MediaPlayer 对象:
@Override
public void onPrepared(MediaPlayer player)
...这在 MediaPlayer/VideoView 正在“准备”时没有发生。
最佳答案
我自己还没有测试过,但是当你处于准备状态时,你应该能够reset()
MediaPlayer。
关于android - 媒体播放器 : stop called in state 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796956/