我们正在使用 exoplayer v2.x 并且正在播放具有 4 个比特率轨道的 HLS 文件。
当我们将 exoplayer 配置为自适应播放时,它从较高比特率的轨道开始,但当我们使用 Charles 限制网络速度时,它不会切换回较低比特率的轨道。播放器似乎坚持使用已经选择的较高比特率的轨道并继续缓冲而不是切换到较低比特率的轨道。
我们通过以下方式配置了 exoplayer:
private DefaultBandwidthMeter BANDWIDTH_METER =
new DefaultBandwidthMeter(mUiUpdateHandler, new BandwidthMeter.EventListener() {
@Override
public void onBandwidthSample(int elapsedMs, long bytes, long bitrate) {
Log.v(TAG, "Elapsed Time in MS " + elapsedMs + " Bytes " + bytes + " Bitrate " + bitrate);
bitrateEstimate = bitrate;
bytesDownloaded = bytes;
}
});
TrackSelection.Factory adaptiveTrackSelectionFactory =
new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
trackSelector = new DefaultTrackSelector(adaptiveTrackSelectionFactory);
player = ExoPlayerFactory.newSimpleInstance(getActivity(), trackSelector,
new CustomLoadControl(new CustomLoadControl.EventListener() {
@Override
public void onBufferedDurationSample(long bufferedDurationUs) {
long bufferedDurationMs = bufferedDurationUs;
}
}, mUiUpdateHandler), drmSessionManager, extensionRendererMode);
谁能确认这是配置播放器的正确方法?还有没有人观察到这个问题并对此进行了修复?
提前致谢。