Воспроизведение видео с SDCard с помощью exoplayer - PullRequest
0 голосов
/ 12 апреля 2019

Я использую 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, поэтому, пожалуйста, ответьте так просто, каквозможно:)

...