2017-11-16 11 views
0

私はexoPlayerでビデオを2日間表示してみましたが、進歩は見られませんでした。 ありがとうございます。ExoPlayerはアセットを表示していませんビデオ

これは、create functionからのコード呼び出しです。

private void initializePlayer() { 
    simpleExoPlayerView = findViewById(R.id.exoPlayerView); 
    simpleExoPlayerView.requestFocus(); 
    DataSpec dataSpec = new DataSpec(Uri.parse("assets:///splash_video.mp4")); 
    player = ExoPlayerFactory.newSimpleInstance(this, new DefaultTrackSelector(), new DefaultLoadControl()); 
    simpleExoPlayerView.setPlayer(player); 
    final AssetDataSource assetDataSource = new AssetDataSource(this); 
    try { 
     assetDataSource.open(dataSpec); 
     DataSource.Factory factory = new DataSource.Factory() { 
      @Override 
      public DataSource createDataSource() { 
       return assetDataSource; 
      } 
     }; 
     player.setPlayWhenReady(true); 
     DefaultExtractorsFactory defaultExtractorsFactory = new DefaultExtractorsFactory(); 
     MediaSource audioSource = new HlsMediaSource(assetDataSource.getUri(), factory, new Handler(), null); 
     Log.e(TAG, assetDataSource.getUri().getPath()); 
     player.prepare(audioSource); 
    } catch (AssetDataSource.AssetDataSourceException e) { 
     e.printStackTrace(); 
    } 
} 

マイライブラリのバージョンは、資産のURIのためのデータソースの作成をサポート

compile 'com.google.android.exoplayer:exoplayer:r2.5.4' 
+0

あなたはWRITE_EXTERNAL_STORAGE許可 を付与しました。<使用許可アンドロイドを:名前=「android.permission.WRITE_EXTERNAL_STORAGE」/> – MGRagab

+0

アセットフォルダにローカルに保存されたファイルに外部ストレージ権限が必要な理由@MGRagab –

+0

ファイルにアクセスするためのアクセス権がプレーヤに必要です。 – MGRagab

答えて

0

DefaultDataSourceFactoryです。 、MP4資産をプレイあなたは、このように作成することができますExtractorMediaSource、でプレーヤーを準備するには:

new ExtractorMediaSource(
    Uri.parse("asset://splash_video.mp4"), 
    new DefaultDataSourceFactory(context, userAgent), 
    new DefaultExtractorsFactory(), 
    null, 
    null); 
関連する問題