是否可以手动更改 exoplayer 的分辨率?

Posted

技术标签:

【中文标题】是否可以手动更改 exoplayer 的分辨率?【英文标题】:Is it possible to change resolution of exoplayer manually? 【发布时间】:2017-10-19 02:30:20 【问题描述】:

我正在开发一个将 Exoplayer2 用于 HLS 视频流的项目。自适应流在我的 exoplayer 中运行良好,但我想实现一个功能,用户可以从 UI 手动更改视频的分辨率(144p、240p、480p ..)。我从 TrackGroup API 获得了播放视频的分辨率。但不知道如何手动将分辨率值设置到播放视频中。 谢谢

【问题讨论】:

首先,它不是一个比特率,它是一个分辨率。至于你的问题,经过一番研究,我会尽力提供帮助。 好的,很抱歉,我没有时间完全提供帮助,但这里是关于切换曲目的问题(功能请求)。 github.com/google/ExoPlayer/issues/676 我认为这就是你要找的。好像已经修复了 【参考方案1】:

您可以使用 Exoplayer2 中的轨道选择器功能来做到这一点 - 它实质上限制了播放器中的自适应比特率选择功能可以选择的轨道。

它只能从流索引文件,清单文件中的可用曲目中选择。因此,您对分辨率/比特率的选择仅限于流提供商提供的任何比特率、分辨率等 - 即用户不能只选择他们想要的任意比特率或分辨率,如果它不是其中之一清单文件(视频轨道索引文件)中可用的。

要只有一首曲目,您只需允许那首曲目。

此功能包含在演示中 - 以下是他们的博客中有关此功能的示例屏幕截图:

这里有更多关于曲目选择的详细信息(也链接自 Exoplyar GitHub 页面):https://medium.com/google-exoplayer/exoplayer-2-x-track-selection-2b62ff712cc9

【讨论】:

你能提供一些示例代码来帮助实现它吗?

以上是关于是否可以手动更改 exoplayer 的分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

ExoPlayer - 在 DefaultTimeBar 中更改拇指

ExoPlayer 无法播放 Adob​​e 实时流编码器流式传输的音频/视频 (RTMP)

是否可以更改 CVPixelBuffer 中捕获的 AR 图像的分辨率?

拔下耳机时暂停ExoPlayer

使用 CastPlayer 更改字幕

使用 ExoPlayer 缓冲音频直播