Open leeyushi opened 5 years ago
ui控制自己没控制?
是的,我用的内置的,现在改成自己空置,可以了,但是有一个很严重的问题啊,慢速播放设置成0.5f(我 用的是音频)音调和声音完全就变了,快速播放没有问题
好像是我把音高也放小的原因,现在应该已经可以了
不建议使用内置的 有的时事件有我的处理的
多线路设置里面,有好多个重载方法,感觉好混乱,demo里面在这一块,好像也基本没有什么介绍
/***
* 设置多线路播放
* @param switchIndex 选中播放线路索引
* @param videoUri 视频地址
* @param name 清清晰度显示名称
*@return Builder
*/
public Builder setPlaySwitchUri(int switchIndex, @NonNull List<String> videoUri, @NonNull List<String> name) {
initMediaSourceBuilder();
mediaSourceBuilder.setMediaSwitchUri(videoUri, switchIndex);
mVideoPlayerView.setSwitchName(name, switchIndex);
return this;
}
mVideoPlayerView.setSwitchName(name, switchIndex);执行到第三句就是Null了 我流式调用的 //开启多线路设置,默认关闭 .setShowVideoSwitch(true) .setPlaySwitchUri(0,mMultilinePlays, mMultilineNames) .create() .startPlayer();
重置跟你的uri的类型 决定的哦
switch (position) {
case 0:
//极高音质
exoPlayerManager.setPlaySwitchUri(0, mMultilinePlays, mMultilineNames);
break;
case 1:
//较高音质
exoPlayerManager.setPlaySwitchUri(1, mMultilinePlays, mMultilineNames);
break;
case 2:
//标准音质
exoPlayerManager.setPlaySwitchUri(2, mMultilinePlays, mMultilineNames);
break;
}
怎么无缝更改音质链接啊,这样设置不起作用
你的"超清", "高清", "标清" 点击事件 是内置处理的吗,不能对外开放设置超清高清标清吗
超清", "高清", "标清“ 和链接对应一下就行。 点击事件都是内容处理好的,无需要自己处理的
那我如果是自定义的“超清”“高清“”标清“样式的话 就无法实现相应功能事件了,如果是内置处理好的话,单纯的音频播放也有增加处理吗?
本来就是自定义的 。 “超清”“高清“”标清“ 超清链接 高清链接 ”标清链接 或者 标清“ 高清“” “超清”“ ”标清链接 高清链接 超清链接
你只要对应号就行了。名称和链接
你说的一个names,一个对应的播放链接,这两个List要相对应我懂,我的意思是提供了这两个选项以后,但是我自己写了一个UI样式,分别为 ”超清“”高清“”标清“按钮,我点击我自己编写的按钮,然后通过调用API 可不可以切换对应的播放链接 和播放进度 达到无缝切换清晰度?
用你的自己点击处理 然后调 ···· if (mExoPlayerListener != null) { mExoPlayerListener.switchUri(position); } ···
好的,谢谢,我去看看,我应该是要去继承这个类,然后重载到这个属性,然后我再自定义一个切换方法?
是的 ui效果需要自己处理了
那这样的话,我好像需要改动源码,才能达到我想要的效果,因为源码里的 private VideoPlayerView mVideoPlayerView 这个属性是私有的,无法继承到这个属性,修改源码就得本地依赖 我先试试,在视频回调里记录下当前播放进度,然后在点击不同的清晰度时,exoPlayerManager.setPosition(索引链接,当前播放位置); 这样好像从理论上也能达到无缝衔接
有get的方法的 控制类
ok,非常感谢!
继承不了,VideoPlayerView是因为常量,BaseView因为是默认修饰符,其它包无法继承,而且继承的话我得改写继承好多个类,你那边能提供一下这个方法的外部调用吗
不过我顺着这个方法: 在视频回调里记录下当前播放进度,然后在点击不同的清晰度时, exoPlayerManager.setPosition(索引链接,当前播放位置); exoPlayerManager.startPlayer(); 可以衔接上去,作者有空能提供一个外部调用切换就更好了
剋以
我final去掉
好的,谢谢作者
您好,设置多线路播放,可以封装一个对外设置当前线路的方法吗 我继承由于是一个类嵌套一个类的,这样改一个类,下来要分层继承好多个类,才有可能嵌套进去
我final去掉
你更新过的在哪里能看到,我在这里文档看到的一直是2.3.50,VideoPlayerView还是常量,无法继承,没办法处理自己定义的多线路切换
要不然算啦,我自己改改源码, 从新上传到另一个github里,自己维护吧。。。
我写代码哦
随你。本身开源的
你那边改好的话也给我说一声
2.2.52 看看
是2.3.52,版本号打错了 好像只是把final去掉了,没有增加对应的设置方法 我发现音频播放是PlayerControlView 里面有private VideoPlayerView videoPlayerView;这个属性 虽然有提供get方法可以获取到这个属性,但是我通过继承以后,是要把PlayerControlView类里面的VideoPlayerView类型更改为我自己继承得到的类
所以这样我好像处理不了,除非把PlayerControlView类的所有方法赋值黏贴到新类,但是赋值黏贴会出问题的
getPlaybackControlView()
为什么只有一个音频时,上一首音频一直是亮的,下一首音频一直是暗的,ID为R.id.exo_prev,上一首音频一直是亮的还不可点击,这样不统一啊,版本是2.3.50