如何将指定的 TimedTextSource 设置为默认值?
How to set specified TimedTextSource as default?
我正在使用 MediaPlayElement
,并且我已经设置了媒体源。
现在我想加几个Closed Captions
,比如英文,印文,简体中文
我使用下面的代码添加了TimedTextSource,它们都放在了媒体播放器中,但是打开媒体时如何指定一个项目为打开?
var timedTextSource = TimedTextSource.CreateFromUri(new Uri(item.url), item.name);
mediaSource.ExternalTimedTextSources.Add(timedTextSource);
您可以像这样尝试使用 TimedMetadataTracks.SetPresentationMode
:
// ms: An instance of MediaSource
// mplayer: MediaPlayerElement
// this code is after add the TimedTextSource
var playbackItem = new MediaPlaybackItem(ms);
var player = new MediaPlayer();
player.Source = playbackItem;
player.BufferingStarted += (_s, _e) =>
{
playbackItem.TimedMetadataTracks.SetPresentationMode(0, TimedMetadataTrackPresentationMode.PlatformPresented);
};
mplayer.SetMediaPlayer(player);
该方法是在视频开始缓冲时主动切换文字轨道
此致。
我正在使用 MediaPlayElement
,并且我已经设置了媒体源。
现在我想加几个Closed Captions
,比如英文,印文,简体中文
我使用下面的代码添加了TimedTextSource,它们都放在了媒体播放器中,但是打开媒体时如何指定一个项目为打开?
var timedTextSource = TimedTextSource.CreateFromUri(new Uri(item.url), item.name);
mediaSource.ExternalTimedTextSources.Add(timedTextSource);
您可以像这样尝试使用 TimedMetadataTracks.SetPresentationMode
:
// ms: An instance of MediaSource
// mplayer: MediaPlayerElement
// this code is after add the TimedTextSource
var playbackItem = new MediaPlaybackItem(ms);
var player = new MediaPlayer();
player.Source = playbackItem;
player.BufferingStarted += (_s, _e) =>
{
playbackItem.TimedMetadataTracks.SetPresentationMode(0, TimedMetadataTrackPresentationMode.PlatformPresented);
};
mplayer.SetMediaPlayer(player);
该方法是在视频开始缓冲时主动切换文字轨道
此致。