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

关于失焦暂停的问题 #14

Open
mos1128 opened this issue Oct 11, 2022 · 5 comments
Open

关于失焦暂停的问题 #14

mos1128 opened this issue Oct 11, 2022 · 5 comments

Comments

@mos1128
Copy link

mos1128 commented Oct 11, 2022

再次打扰,打算通过连续播放来实现广告功能的时候发现个问题
mVideoPlayer.setInterceptTAudioFocus(true);//是否监听音频焦点状态,设置为true后SDK在监听焦点丢失时自动暂停播放
无论为true还是false,onPause/onStop/播放器失焦:均不会停止播放
以下情况均在进程未销毁的情况下测试

当为true时
1、通过返回键回到桌面,触发onRestrat,画面会从头播放,音频会在之前的进程未关闭的情况下再从头播放一个,两个音频出现叠加
2、通过Home键回到桌面,触发onRestrat,视频音频皆正常播放


2、当为false时
1、通过返回键回到桌面,触发onRestrat,画面和音频均会从头播放,不会叠加
2、通过Home键回到桌面,触发onRestrat,之前的视频和音频会被暂停且存储(暂且称之为存储吧),正常播放不会出现问题。但是当点击返回的时候,会销毁当前的视图,并恢复到上一个存储的视图(View?),如果你点了N次Home键,那就需要点N+1次返回才能回到桌面。


有点晚了,所以还没看代码,描述可能不太准确。明天空了看看,如果有更正我再补充。
注:提issues的时候重试了一遍发现false下的2情况,不是百分百复现,有点迷,好像是在切换setInterceptTAudioFocus()参数并且未结束进程直接覆盖安装的时候会出现,作为我的白盒方向明天继续研究。

@hty527
Copy link
Owner

hty527 commented Oct 12, 2022

你好!能否方便将你的出发onPause/onStop/onRestrat/Home键的播放器相关的处理代码贴出来一下吗?

@mos1128
Copy link
Author

mos1128 commented Oct 12, 2022

你好!能否方便将你的出发onPause/onStop/onRestrat/Home键的播放器相关的处理代码贴出来一下吗?

抱歉,我被YQ管控了。。。
那台设备没在身边,不过代码都是跟着wiki走的,就单加了一句是否监听音频焦点状态。
我下载了demo发现好像没有这个问题,有点迷了。不过问题不大,不行的话我就主动在onPause处理一下监听也行。
另外,使用ijk的时候,会一直循环播放,设置setLoop(false)也无效。(demo好像依旧没有这个问题~_~)


昨天还有个问题忘了说:设定为exo解码的时候,implementation依赖com.github.hty527.iPlayer:exo:2.1.1,报错java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/exoplayer2/Player$Listener;Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.exoplayer2.Player$Listener",我增加了依赖com.google.android.exoplayer:exoplayer:2.18.1依旧无效
但是运行了demo之后我已经开始怀疑这可能是我自己的问题了,如果您没有遇到这方面的问题那就是我自身环境的毛病,那可以忽视这一点了,等管控结束我换个设备拉下来跑看看

@hty527
Copy link
Owner

hty527 commented Oct 13, 2022

好的,现在针对你的两个问题进行详细回复下:
1、mVideoPlayer.setInterceptTAudioFocus(true);这句话是监听音频焦点是否被其它播放器抢占时本播放器暂停播放。比如正在进行本播放器播放视频,然后开始播放第三方的音乐、视频时,此时音频焦点会丢失,本播放器会暂停播放。这个音频焦点和生命周期没有关系哈~
2、我这边在全新的项目集成iPlayer时没有报java.lang.NoClassDefFoundError错误。exo报java.lang.NoClassDefFoundError,可能是开启了混淆但没有排除exoplayer2,请尝试在proguard-rules.pro文件中添加下列过滤规则重试,如果还未解决问题可向我反馈哈。

ExoPlayer

-keep class com.google.android.exoplayer2.** { ; }
-dontwarn com.google.android.exoplayer2.
*

@mos1128
Copy link
Author

mos1128 commented Oct 13, 2022

感谢回复
抱歉,乌龙了~_~!
README里面提到了生命周期的处理,但是没留意哈哈,一直抱着wiki和demo中的/ui/activity/VideoPlayerActivity.java在啃,却忽略了生命周期是在BaseActivity.java处理的。
下次提问一定注意规避这类问题

@hty527
Copy link
Owner

hty527 commented Oct 14, 2022

哈哈哈,没有关系。

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

No branches or pull requests

2 participants