-
Notifications
You must be signed in to change notification settings - Fork 528
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
AnimPlayer.isStartRunning赋值问题,导致无法播放 #180
Comments
你说的这个问题是有必现路径吗?如果没有catch住的话,应该会crash才对,能提供日志吗? |
线上复现的,没有日志,尝试复现,没有找到必现路径。不会崩溃的,animView中调用player.startPlay()会try catch的 override fun startPlay(fileContainer: IFileContainer) { |
最外层是有try catch,我看看这个问题 |
2021-12-07 15:12:07.671 21740-21740/: FileContainer init 这是复现的日志,没有看到onSurfaceTextureAvailable的调用,是这里的原因吗 |
使用的是2.0.22版本,我会在每次onVideoComplete回调中开启新的播放文件 |
看wiki 上写的是需要等待onComplete的回调后,才能再次调用start进行播放。这么播放会有问题吗 |
ALog.i(TAG, "onSurfaceTextureAvailable width=$width height=$height") |
ALog.i(TAG, "onSurfaceTextureAvailable width=$width height=$height")这个日志没有打印出来 |
我需要把再次播放的逻辑放到onVideoDestroy回调中吗 |
正常在onVideoComplete就好,正常应该有onSizeChange的日志,没有这个回调是无法正常播放的,你可以确认下。我看日志你第一次应该是正常播放了才对,是第二次没有播放吧,第一次正常播放应该有onSizeChange的回调才对 |
是的,第一次有onSizeChange回调 |
@hexleo 找到原因了 |
了解,我确认下问题,看如何修复 |
你切换到这个分支 bugfix/android_destroy_inner 先验证下,我没重现你的问题,但确实会出现你说的那种情况,应该是标志位没设置正确导致。你验证没问题了我再发新版本 |
我目前测试没有复现了 |
在2.0.23修复了这个问题 |
感谢 |
发现播放时AnimPlayer.isStartRunning一直为true,导致视频一直无法播放。以下代码不知道是不是引发问题的原因
AnimPlayer.startPlay会调用decoder?.prepareThread(),prepareThread()会调用createThread(),createThread()中只try了OutOfMemoryError,这时发生了其它异常,无法没办法try住,无法走到decoder?.prepareThread() == false中的isStartRunning = false逻辑,导致isStartRunning一直为true,之后就会一直无法播放了
The text was updated successfully, but these errors were encountered: