Опитвам се да внедря основен радиоплейър, който може да постави на пауза потока на живо, да го превърти назад и след това да го превърти отново.
Мисля, че тази функционалност трябва да се поддържа първоначално от версия 2.1 на ExoPlayer.
Въпреки това, контролите за превъртане назад и бързо напред са сиви при поточно предаване, въпреки че работят при възпроизвеждане на локално съдържание.
Ето как създавам плейъра:
private void initExoPlayer(){
Handler mHandler = new Handler();
String userAgent = "userAgent";
Uri uri = Uri.parse(urlSourceOfStream);
dataSourceFactory = new DefaultHttpDataSourceFactory(
userAgent, null,
DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
1800000,
true);
mediaSource = new ExtractorMediaSource(uri,dataSourceFactory, Mp3Extractor.FACTORY,
mHandler, null);
bandwidthMeter = new DefaultBandwidthMeter();
trackSelectionFactory =
new AdaptiveTrackSelection.Factory(bandwidthMeter);
trackSelector = new DefaultTrackSelector(trackSelectionFactory);
loadControl = new DefaultLoadControl();
exoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
exoPlayer.prepare(mediaSource);
((SimpleExoPlayerView) findViewById(R.id.exoPlayer)).setPlayer(exoPlayer);
}
Плейърът може да постави на пауза успешно и изглежда, че кешира съдържанието, тъй като мога да възобновя плейъра, след като е бил на пауза за минути. Това също показва, че трябва да има някакъв кеш, който може да ми позволи да превъртя съдържанието назад.
Опитах също да използвам OkHttpDataSourceFactory:
OkHttpClient client = new OkHttpClient.Builder().cache(new Cache(getFilesDir() , 1000)).build();
OkHttpDataSourceFactory okHttpDataSourceFactory = new OkHttpDataSourceFactory(client, userAgent, null);
Опитът да превъртите плейъра назад по този начин кара плейъра да играе от позицията на потока на живо и не превърта назад съдържанието:
exoPlayer.seekTo(Math.max(exoPlayer.getCurrentPosition() - 1000, 0));
Моят въпрос накратко: Как мога да превъртя HLS назад и напред с ExoPlayer?
Благодаря предварително.