2017-03-07 7 views
1

私はExoPlayer 2を使ってリモートトラックを再生しています。デフォルトでは、トラックを1つずつ(つまり約20秒間、次にトラックが再生されている間に20秒間)ロードします。ExoPlayer、リモートオーディオファイルの大きな部分を読み込む方法

トラックはリモートサーバーからロードされるため、接続が切断されるとプレーヤーはもうロードできなくなります。 ExoPlayerに、オーディオファイルの大部分(一度にフルトラック)を読み込む方法はありますか?

私はExtractorMediaSourceDataSource.FactoryDefaultExtractorsFactoryを見ようとしましたが、私の問題を解決するものは何も見つかりませんでした。

val audioSource = ExtractorMediaSource(
     Uri.parse(videoUrl), 
     mDataSourceFactory, // DataSource.Factory 
     mExtractor, // DefaultExtractorsFactory 
     null, 
     null 
) 

mExoPlayer.prepare(audioSource) 
mExoPlayer.playWhenReady = true 

(それはKotlinですが、Javaプログラマでも理解できるように思われる)

答えて

6

私は解決策を見つけました。私は他の関連する質問を見つけていないよので、私は(誰かが将来的に必要になります期待して)私の質問にお答えします:

設定する権利オブジェクトがExoPlayerオブジェクトを作成するときExoPlayerFactoryに渡さLoadControlです:

val loadControl = DefaultLoadControl(
      DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE), 
      5 * 60 * 1000, // this is it! 
      10 * 60 * 1000, 
      DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS.toLong(), 
      DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS.toLong() 
) 
mExoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl) 

The docここで説明します。

+0

非常に役に立ちます。ありがとう。 – akki

関連する問題