2016-12-16 8 views
1

Mit ExoPlayer versuche ich zwei Audiospuren gleichzeitig abzuspielen.
Meine Idee war, zwei MediaSource zu erstellen und zwischen ihnen unter Verwendung MergingMediaSource zu "kombinieren".
Dies ist, was ich getan habe:ExoPlayer - zwei Audiospuren gleichzeitig abspielen

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); 

Wie auch immer, anstatt zu hören beide Audiospuren parallel, höre ich nur die erste audioSource1.

Irgendwelche Ideen? Vielen Dank!

Antwort

1

Sie können ConcatenatingMediaSource verwenden:

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()]))); 
Verwandte Themen