iPlayer
iPlayer copied to clipboard
关于失焦暂停的问题
再次打扰,打算通过连续播放来实现广告功能的时候发现个问题
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()参数并且未结束进程直接覆盖安装的时候会出现,作为我的白盒方向明天继续研究。
你好!能否方便将你的出发onPause/onStop/onRestrat/Home键的播放器相关的处理代码贴出来一下吗?
你好!能否方便将你的出发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之后我已经开始怀疑这可能是我自己的问题了,如果您没有遇到这方面的问题那就是我自身环境的毛病,那可以忽视这一点了,等管控结束我换个设备拉下来跑看看
好的,现在针对你的两个问题进行详细回复下: 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.*
感谢回复 抱歉,乌龙了~_~! README里面提到了生命周期的处理,但是没留意哈哈,一直抱着wiki和demo中的/ui/activity/VideoPlayerActivity.java在啃,却忽略了生命周期是在BaseActivity.java处理的。 下次提问一定注意规避这类问题
哈哈哈,没有关系。