android - 媒体播放器 : stop called in state 4

标签 android android-mediaplayer

我有一个 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/

相关文章:

android - Android浏览器是开源的吗?

android - 无法在设备 'emulator-5554' 上安装 apk : timeout

android - 在 Android 上禁用 "Bluetooth Permission Request"确认 - 使用 ACTION_REQUEST_DISCOVERABLE

Samsung Galaxy S4 (SGS4) 上的 Android 套接字问题

java - mediaplayer.isPlaying 始终为 false

android - 访问 MediaPlayer 中的音频缓冲区

android - 如何将 PictureDrawable 转换为位图

java - 单击 android webview 中的链接时启动打开的浏览器

c# - 将音频字节流式传输到 MediaPlayer

java - 媒体播放器错误 -38,0