Почему Exoplayer 2.x не переключается на более низкие битрейты в низкой сети во время адаптивного воспроизведения? - PullRequest
1 голос
/ 14 мая 2019

Мы используем exoplayer v2.x и воспроизводим файл HLS, который имеет 4 дорожки битрейта.

Когда мы настраиваем 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);

Может кто-нибудь подтвердить, что это правильный способ настройки плеера? Также кто-нибудь наблюдал эту проблему и есть решение для этого?

Заранее спасибо.

...