AirPlay-Receiver-on-Android icon indicating copy to clipboard operation
AirPlay-Receiver-on-Android copied to clipboard

VideoPlayerActivity.java的各种对象的生命周期处理不当

Open MilesChan opened this issue 9 years ago • 3 comments

如果从VitamioPlayer更换为系统的MediaPlayer,就会发现各种mediaPlayer的illegalState异常,而代码中异常捕获太少,各种崩溃

如:timerTask启动太早,应该在startVideoPlayback函数中启动.否则各种异常 另外清理工作不够彻底,也容易导致播放器异常

private void doCleanUp() { mVideoWidth = 0; mVideoHeight = 0; mIsVideoReadyToBePlayed = false; mIsVideoSizeKnown = false; releaseMediaPlayer(); handler.removeCallbacksAndMessages(null); if (timerTask != null) { timerTask.cancel(); timerTask = null; } if (timer != null) { timer.cancel(); timer = null; } }

最好还是用系统播放器来做,等ok后,再替换为Vitamio,否则各种问题被隐藏.

MilesChan avatar Sep 16 '15 14:09 MilesChan

毕竟有部分用户不想用vitamio,因为会导致apk变的较大

MilesChan avatar Sep 16 '15 14:09 MilesChan

还有很多其他问题,比如seek必须在startVideoPlayback之后,基本上在播放器准备好之前,任何操作都是无效的,直接导致播放起始位置没生效

MilesChan avatar Sep 16 '15 16:09 MilesChan

@MilesChan 协议之上,用什么播放器可以自行处理修改。谢谢…… 目前android自带的播放器是不好用的,一般这个东西用于盒子开发,盒子厂商肯定使用自己的播放器这样就好多了。 另外 关于这个问题,代码中我使用了vitamio的videoview,这个类用起来不太好,倒是seek等出问题。另外代码中还有使用了vitamio的mediaplayer是没有这个问题的。 使用seek是因为想要实现断点继续播放。代码中使用mediaplayer的那个是没有问题。 之不过很简单。没有进行全屏处理等。 谢谢

gpfduoduo avatar Sep 17 '15 12:09 gpfduoduo