2016-12-16 6 views
1

使用ExoPlayer私は2つのオーディオトラックを同時に再生しようとしています。
2つのMediaSourceを作成し、MergingMediaSourceを使用してそれらの間を「結合」することを考えました。
これは私がやっていることです:ExoPlayer - 2つのオーディオトラックを同時に再生する

Uri uriAudio1 = Uri.parse(AUDIO_URL_1); 
    Uri uriAudio2 = Uri.parse(AUDIO_URL_2); 

    MediaSource audioSource1 = new ExtractorMediaSource(uriAudio1, dataSourceFactory, extractorsFactory, mainHandler, null); 
    MediaSource audioSource2 = new ExtractorMediaSource(uriAudio2, dataSourceFactory, extractorsFactory, mainHandler, null); 


    MergingMediaSource mergedAudioSource = new MergingMediaSource(audioSource1, audioSource2); 


    mPlayer.prepare(mergedAudioSource); 

どのようにこれまでの代わりに並行してオーディオトラックの両方を聞いて、私は最初audioSource1を聞きます。

アイデア?ありがとう!

答えて

1

あなたはConcatenatingMediaSourceを使用することができます。

List<MediaSource> mediaSources = new ArrayList<>(); 
        for (Track track : tracks) { 
         MediaSource mediaSource = ...//use your uri media source from tack.getPath 
         mediaSources.add(mediaSource); 
        } 
        mediaPlayer.prepare(new ConcatenatingMediaSource(mediaSources.toArray(new MediaSource[mediaSources.size()]))); 
関連する問題