Exoplayer如何设置trackselector参数播放360p低清/指定画质视频
ExoPlayer TrackSelector 配置360p低清播放的参数设置
核心使用DefaultTrackSelector配合自定义TrackSelectionParameters做轨道约束即可,不需要修改播放器内核逻辑,具体配置如下:
- 首先实例化
DefaultTrackSelector,不要额外开启最高画质优先的默认自适应逻辑 - 构建轨道选择参数时,通过宽高范围把视频轨道锁定在360p区间,同时关闭自动升档到高码率的逻辑
- 把构建好的参数传入
trackSelector.setParameters()完成配置
可直接参考的实现代码:
// 初始化轨道选择器 DefaultTrackSelector trackSelector = new DefaultTrackSelector(context); TrackSelectionParameters lowQualityParams = new TrackSelectionParameters.Builder(context) // 强制关闭高码率优先逻辑,避免自动跳转到更高画质 .setForceHighestSupportedBitrate(false) // 横屏360p的标准高度为360px,留少量兼容冗余设置上下限,过滤掉144p/240p/720p及以上档位 .setMinVideoHeight(320) .setMaxVideoHeight(400) // 横屏360p 16:9比例对应宽度为640px,同样留兼容冗余 .setMinVideoWidth(480) .setMaxVideoWidth(720) // 设置尺寸容差为小档位,片源无精准360p时优先选最接近且不超过上限的分辨率 .setVideoSizeTolerance(TrackSelectionParameters.VIDEO_SIZE_TOLERANCE_SMALL) .build(); // 应用配置到轨道选择器 trackSelector.setParameters(lowQualityParams);
注意:如果播放的是竖屏视频,需要把宽高的约束值互换——竖屏360p的宽度为360px、高度为640px,直接套用横屏参数会匹配不到对应轨道。
如果后续需要切换回其他画质,直接重新构建TrackSelectionParameters传入setParameters()即可,播放器会实时切换到符合新规则的轨道,不需要重建实例。
内容的提问来源于stack exchange,提问作者Chandrashekhar Reddy
相关产品推荐
相关产品推荐

