2016-06-11 95 views
1

我試圖在Windows 10 UWP應用程序中播放HLS流。 This stream包含嵌入式字幕,可直接播放HLS流時在VLC播放器或Edge瀏覽器中打開。如何在Windows 10 UWP應用程序中顯示HLS流的嵌入式隱藏式字幕?

有沒有辦法讓在UWP MediaElement中顯示這​​些嵌入式字幕呢?

我已經使用這種方法的嘗試,但沒有textSources使用這些步驟時加載或所示:

Uri source = new Uri("http://nasatv-lh.akamaihd.net/i/[email protected]/master.m3u8"); 
AdaptiveMediaSourceCreationResult result = await AdaptiveMediaSource.CreateFromUriAsync(source); 

if (result.Status == AdaptiveMediaSourceCreationStatus.Success) 
{ 
    AdaptiveMediaSource astream = result.MediaSource; 
    MediaSource mediaSource = MediaSource.CreateFromAdaptiveMediaSource(astream); 
    var metadataTracks = mediaSource.ExternalTimedMetadataTracks.ToArray(); 
    var textSources = mediaSource.ExternalTimedTextSources.ToArray(); 
    // both arrays above are empty when loading the NASA TV stream 

    MediaPlaybackItem mediaElement = new MediaPlaybackItem(mediaSource); 
    Player.SetPlaybackSource(mediaElement); 
} 

注意我試圖使用播放器框架爲好,但沒有成功。

回答

1

如何在UWP MediaElement中顯示這些嵌入式字幕?

顯示內嵌字幕中this stream,你可以設置URI作爲MediaElementSource,改變AreTransportControlsEnabled propertytrue,使標準的傳輸控制。

<MediaElement x:Name="mediaElement" 
       AreTransportControlsEnabled="True" 
       Source="http://nasatv-lh.akamaihd.net/i/[email protected]/master.m3u8" /> 

一旦它具有有效的字幕,隱藏字幕菜單將顯示,我們可以用它來控制是否顯示字幕像以下:
enter image description here

MediaSource.ExternalTimedMetadataTracksMediaSource.ExternalTimedTextSources財產用於獲取外部定時元數據跟蹤或與MediaSource關聯的文本來源。由於信息流中的字幕已嵌入,因此您沒有在ExternalTimedTextSources中添加TimedTextSource,因此沒有textSources

+0

謝謝,我從來沒有找到關於此開關的信息,包括它自動處理字幕的事實! –