Android Exoplayer AdaptiveTrackSelection нужен для запуска видео с высоким качеством

Я использую Exoplayer для потоковой передачи видеоконтента HLS. По умолчанию AdaptiveTrackSelection запускается с низким качеством и, обнаруживая хорошую скорость интернета, переключается на высокое качество. Я хочу запустить плеер с высоким качеством, и тогда оно должно измениться в зависимости от скорости интернета. Заранее спасибо.


person Sachin Jagtap    schedule 20.11.2018    source источник


Ответы (1)


Я считаю, что вы ищете модификацию «максимального начального битрейта». Это параметр, который вы можете передать BandwidthMeter. BandwidthMeter - это то, что определяет вашу пропускную способность и то, как он будет выбирать трек на основе этой информации. Если вы передадите в качестве этого параметра большое число, по умолчанию будет установлен более высокий битрейт. По умолчанию сейчас 1_000_000, я думаю (как DEFAULT_MAX_INITIAL_BITRATE), но посмотрите это, чтобы убедиться.

Чтобы передать это, это будет выглядеть следующим образом:

final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
        .setInitialBitrateEstimate(defaultMaxInitialBitrate)
        .build();
final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
        new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)

Еще несколько источников:

https://github.com/google/ExoPlayer/issues/3698

https://github.com/google/ExoPlayer/issues/676

person Kyle Venn    schedule 24.11.2018
comment
Спасибо, @Kyle. По умолчанию это DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000. - person Sachin Jagtap; 26.11.2018
comment
В этом случае изменяется ли поток на более низкое разрешение при снижении скорости интернета? Или видео зависает для буферизации? В моем случае началась буферизация видео. В чем может быть возможная проблема? - person Prakash; 17.12.2018