Я использую exoplayer для воспроизведения видео с SD-карты. И есть проблема. Кажется, что exoplayer буферизует видео с SD-карты, и если я использую селектор дорожек для перехода к небуферизованным частям, видео прекращает буферизацию.и выдает исключение:
вот мой код
PlayerView playerView;
SimpleExoPlayer simpleExoPlayer;
@Override
protected void onStart() {
super.onStart();x
playerView=(PlayerView)findViewById(R.id.ff);
simpleExoPlayer= ExoPlayerFactory.newSimpleInstance(this,new DefaultTrackSelector());
playerView.setPlayer(simpleExoPlayer);
/*DefaultDataSourceFactory defaultDataSourceFactory=new DefaultDataSourceFactory(this, Util.getUserAgent(this,"ExoPlayer"))
ExtractorMediaSource extractorMediaSource=new ExtractorMediaSource(defaultDataSourceFactory)
.creatMediaSource(Uri.parse());*/
String playerInfo = Util.getUserAgent(this, "ExoPlayerInfo");
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(
this, playerInfo
);
MediaSource mediaSource = new ExtractorMediaSource.Factory(dataSourceFactory)
.setExtractorsFactory(new DefaultExtractorsFactory())
.createMediaSource(Uri.parse(Environment.getExternalStorageDirectory().toString()+"/gfdf2.mp4"));
simpleExoPlayer.prepare(mediaSource);
//simpleExoPlayer.setPlayWhenReady(true);
}
@Override
protected void onStop() {
super.onStop();
playerView.setPlayer(null);
simpleExoPlayer.release();
simpleExoPlayer=null;
}
}
и вот мой журнал
E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.EOFException
at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:70)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:147)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:844)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
Caused by: java.io.EOFException
at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:67)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:147)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:844)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
Я новичок в exoplayer, поэтому, пожалуйста, ответьте так просто, каквозможно:)