Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复重新恢复播放后不能从断点开始播放的Bug #9

Closed
wants to merge 1 commit into from
Closed

Conversation

thinwonton
Copy link

bug原因:

百度播放器的onCompletion方法,在onPause方法后被调用。假如,在视频正在播放或者暂停播放视频的条件下,此时,app进入后台,
onPause和onCompletion会相继被调用,此时mLastPos在onCompletion中会被赋值0,这样,在onResume的时候,mLastPos永远为0。最终导致播放器永远从时隙为0的地方进行播放

bug原因:

百度播放器的onCompletion方法,在onPause方法后被调用。假如,在视频正在播放或者暂停播放视频的条件下,此时,app进入后台,
onPause和onCompletion会相继被调用,此时mLastPos在onCompletion中会被赋值0,这样,在onResume的时候,mLastPos永远为0。最终导致播放器永远从时隙为0的地方进行播放
@daimajia
Copy link
Owner

daimajia commented Jun 8, 2014

太感谢你的pull request了,能不能说一下要怎么重现这个bug呢,我都有一阵子木有动这个项目啦。

@thinwonton
Copy link
Author

它正在播放的时候,点击home返回后台,再从最近任务返回前台,就会从0开始播放了,你代码原意是从断点开始播放。。。。可以在onCompletion和onPause分别打断点,看下mLastPos的值

另外,重写一个播放时候的用户交互过程吧。。。现在你是restart->resume后直接播放视频了,最好还是先把最后一帧的图像保存起来,然后在从后台返回前台resume的时候,把最后一帧set到mVV,然后由用户自行点击播放,因为途中会有网络状况的变更。。。这是个人建议....呵呵。。。但,我当时想改一下这个交互过程,但不成功,会发生什么图像已经被recycle的异常。
我增加了
mVV.setDrawingCacheEnabled(true);
mVV.buildDrawingCache();
mLastFrame=mVV.getDrawingCache(); //获取最后一帧图像
mVV.setDrawingCacheEnabled(false);
然后在onResume里setBackgroud

你playActivity的handler有泄漏,可能会某一时刻发生oom(也许就是你那个issue的原因所在),参考
http://blog.csdn.net/huang86411/article/details/25420129

在onDestroy那里把mDetailPicture recycle一下。。。

恩,想到的就那么多了。。。。非常感谢你的开源项目.....在看你的m3u8

@daimajia
Copy link
Owner

Hey,朋友

我来感谢下你,因为一直没有时间完善,所以这个bug拖了很久。

现在,参考着你的提示,我把这个bug修复啦~ 感谢 感谢~

@daimajia
Copy link
Owner

新的版本也很快会推出哒!

@daimajia daimajia closed this in 5847ee2 Apr 14, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants