概述

替代音效可讓您在視訊音軌的可用音軌間切換。 當視訊播放時,使用者可以選擇偏好的語言軌道。

當TVSDK建立目前視訊的MediaPlayerItem例項時,會為每個可用的音軌建立AudioTrack項目。 項目包含name屬性,此屬性是字串,通常包含該追蹤語言的使用者可識別描述。 項目也包含是否依預設使用該追蹤的資訊。 在播放視訊時,您可以要求提供可用音軌清單、選擇性允許使用者選擇音軌,並設定視訊與選取的音軌一起播放。

秘訣

雖然很少,但若TVSDK在建立MediaPlayerItem後有其他音軌可供使用,TVSDK會觸發MediaPlayerItem.AUDIO_TRACK_UPDATED事件。

新增API

已新增下列API以支援替代音訊:

hasAlternateAudio

如果指定的媒體具有預設音軌以外的替代音軌,則此布爾函式返回true。 如果沒有替代音軌,函式將返回false

boolean hasAlternateAudio();

getAudioTracks

此函式會傳回指定媒體中所有目前可用音軌的清單。

List<AudioTrack> getAudioTracks();

getSelectedAudioTrack

此函式可傳回目前選取的替代音軌和屬性,例如語言。 還可以提取軌道的自動選擇。

AudioTrack getSelectedAudioTrack();

selectAudioTrack

此函式會選取要播放的替代音軌。

void selectAudioTrack(AudioTrack audioTrack);

例如:

private void onPrepared() { 
    // Select the AA track in PREPARED State 
    boolean hasAlternateAudio = _mediaPlayer.getCurrentItem().hasAlternateAudio(); 
    if(hasAlternateAudio) { 
        AudioTrack selectedAudioTrack =  
          _mediaPlayer.getCurrentItem().getSelectedAudioTrack(); 
 
        if (selectedAudioTrack == null) {  
            // Selecting default audio track  
            // If index is 1 it will select alternate audio track  
            selectedAudioTrack = _mediaPlayer.getCurrentItem().getAudioTracks().get(0);  
        } 
    } 
    _mediaPlayer.getCurrentItem().selectAudioTrack(selectedAudioTrack); 
} 

本頁內容