当前位置: 首页 > 知识库问答 >
问题:

在我的应用程序中自定义exoplayer质量对话框

杨乐
2023-03-14

我的android应用程序中有视频播放器,我使用exoplayer库制作它们。我的播放器可以播放.m3u8视频(我从后端获得它们),所有这些视频都可以是不同的质量,例如,1024x576、768x432等。我想为用户显示对话框,有可能改变视频流质量。为此,我使用GitHub中exoplayer示例中的下一段代码:

MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
        if (mappedTrackInfo != null) {
            CharSequence title = "Tit;eee";
            int rendererIndex = 0; // renderer for video
            int rendererType = mappedTrackInfo.getRendererType(rendererIndex);
            boolean allowAdaptiveSelections =
                    rendererType == C.TRACK_TYPE_VIDEO
                            || (rendererType == C.TRACK_TYPE_AUDIO
                            && mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_VIDEO)
                            == MappingTrackSelector.MappedTrackInfo.RENDERER_SUPPORT_NO_TRACKS);


            Pair<AlertDialog, TrackSelectionView> dialogPair =
                    TrackSelectionView.getDialog(this, title, trackSelector, rendererIndex);
            dialogPair.second.setShowDisableOption(true);
            dialogPair.second.setAllowAdaptiveSelections(allowAdaptiveSelections);
            dialogPair.first.show();
}

共有1个答案

黎征
2023-03-14

这可能为时已晚,但以下是这样做的方法,

这里的主类是“TrackSelectionView”,这个类只是扩展了一个LinearLayout。要实现所需的特性,您需要创建自己的类(名称可以是任意名称),然后在其中复制粘贴TrackSelectionView的全部代码。我们为什么要这么做?因为,我们需要改变这个类的一些逻辑,它是一个只读类。

实际上,要实现第一个特性(没有“none”选项),只需编写dialogpair.second.setshowdisableoption(false);而不是该“true”。

https://gist.github.com/abhiint16/b473e9b1111bd8bda4833c288ae6a1b4

不要忘记使用您的类引用而不是TrackSelectionView。

您将使用上面的文件,如下所示:https://Gist.github.com/abhiint16/165449a1a7d1a55a8f69d23718c603c2

为此,您只需要在类中实现一个名为GetReso的接口,在那里您将获得所选的文本初始值。现在您只需将该字符串设置为TextView即可。

享受编码....

 类似资料:
  • 我有一个使用restful api的Spring Boot客户机。应用程序中有任何密钥条目,而不是在java类中硬编码RESTAPI的IP地址。我可以使用的属性? 如果没有,我可以创建一个自定义条目吗? 谢啦

  • 问题内容: 我正在编写一个Swing应用程序,该应用程序需要充当浏览器中的applet或独立应用程序,即它可以包含在JFrame或JApplet中。 在这种情况下,我想向用户显示一个自定义模式对话框(即,一个具有自定义布局和逻辑的复杂对话框,而不仅仅是简单的JOptionPane提示之一)。如果对话框是完全包含在应用程序窗口中的轻量级组件,那就很好。 同时,应用程序中将发生后台处理(网络线程,动画

  • 我正在创建IPTV应用程序。在这种情况下,Exoplayer用于视频流,现在的要求是在运行时改变视频质量(自动,720p,1080p,高清),就像YouTube一样。 我已经找到了2-3个解决方案,但我不明白如何实现这一点。

  • 我是Android新手,正在开发自定义警报对话框 我想打开另一个对话框,点击编辑按钮,代码如下 但我得到了一个异常,我的日志cat输出如下 就连我的红色十字按钮也可以正常工作,我已经多次使用相同的代码用TextView显示AlertDialog,但我不知道代码出了什么问题。非常感谢您的帮助。提前谢谢。 现在我得到了我想要的,但是编辑和保存都有重叠。我想隐藏编辑(蓝色按钮)并使保存按钮清晰可见。

  • 我有一个带有的自定义对话框。在我的上,我有一个按钮,当我按下它时,对话框就会显示出来,我可以从中选择日期。我希望选定的日期显示在我的中的上。我的代码如下: 这是我的主上包含的对话框的代码: 我从中获取日、月和年,并使用 在我的片段中,我使用下面的代码调用我的对话框: 当我运行我的应用程序时,我在以下行中得到一个nullPointerException: 我做错了什么?提前致谢

  • 请帮助解决这个问题。多谢.