GSYVideoPlayer icon indicating copy to clipboard operation
GSYVideoPlayer copied to clipboard

播放失败

Open Vicent9920 opened this issue 3 years ago • 4 comments

问题描述:

拖动进度条,然后全屏播放返回小屏播放,5秒后,小屏自动切到大屏,此时很快视频就播放结束,继续播放下一个视频时会导致播放失败

出现问题的视频流

问题机型/系统:

所有机型都出现了,

GSY依赖版本

8.3.2

问题log(如果有)

W/System.err: java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:1257)
at android.graphics.Bitmap.createBitmap(Bitmap.java:1224)
at android.graphics.Bitmap.createBitmap(Bitmap.java:1174)
at android.graphics.Bitmap.createBitmap(Bitmap.java:1135)
at com.shuyu.gsyvideoplayer.render.view.GSYTextureView.initCover(GSYTextureView.java:136)
at com.shuyu.gsyvideoplayer.render.GSYRenderView.initCover(GSYRenderView.java:112)
at com.shuyu.gsyvideoplayer.video.base.GSYTextureRenderView.initCover(GSYTextureRenderView.java:147)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.updatePauseCover(GSYVideoView.java:257)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoControlView.resolveUIState(GSYVideoControlView.java:844)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoControlView.setStateAndUi(GSYVideoControlView.java:369)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.onVideoPause(GSYVideoView.java:513)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.startAfterPrepared(GSYVideoView.java:843)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.onPrepared(GSYVideoView.java:605)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoControlView.onPrepared(GSYVideoControlView.java:629)
at com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.onPrepared(GSYBaseVideoPlayer.java:170)
at com.shuyu.gsyvideoplayer.GSYVideoBaseManager$1.run(GSYVideoBaseManager.java:264)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)

Vicent9920 avatar Sep 05 '22 09:09 Vicent9920

setShowPauseCover 函数虽然可以解决问题,但是不应该是这个解决方案(需求不能被砍掉,产品不同意)。目前是通过延迟播放来解决这个问题和大屏拖动进度导致播放结束后切回小屏也无法正常播放的问题。

Vicent9920 avatar Sep 06 '22 03:09 Vicent9920

log 上看,主要是在 showPauseCover 的时候, initCover 出现了 width and height must be > 0 ,所以你可以调试下为什么

CarGuo avatar Sep 08 '22 01:09 CarGuo

原因可能在于大屏和小屏在切换过程中,设置暂停对封面图时,此刻并没有对应的UI渲染出来,导致了上面的错误。

Vicent9920 avatar Sep 08 '22 01:09 Vicent9920

提交加了个判断,在出现问题时规避下这个问题

CarGuo avatar Sep 08 '22 02:09 CarGuo