首页 > 解决方案 > 文本未从 MediaPlayerElement (UWP) 更新 onTransportControl

问题描述

我尝试像这些代码一样将视频标题放在 MediaPlayerElement 的 TransportControl

MediaTransportControlsStyle.xaml

...
 <TextBlock
    Name="tblTitle"
    Grid.Column="1"
    Margin="5"
    FontFamily="Arial"
    FontSize="22"
    FontWeight="SemiBold"
    TextAlignment="Center" />
...

PlayerPage.xaml.cs

private async void MediaPlayer_MediaOpened(MediaPlayer sender, object args)
{
    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
    {
        FrameworkElement transportControlsTemplateRoot = (FrameworkElement)VisualTreeHelper.GetChild(player.TransportControls, 0);
        TextBlock tblTitle = (TextBlock)transportControlsTemplateRoot.FindName("tblTitle");
        if (tblTitle != null)
            tblTitle.Text = MediaTitle; // Debug can run to this line
    });
}

问题是tblTitle只是在应用程序第一次导航到PlayerPage.xam l 页面时更新。从第二次开始,即使调试运行到该行,tblTitle 也保持空白

tblTitle.Text = MediaTitle; // Debug can run to this line

我想我与 Dispatcher.RunAsync 方法有关以更新 UI 线程。我尝试了几种方法,但没有运气。我该如何解决这个问题?

标签: c#xamluwpwin-universal-appwindows-10-universal

解决方案


我发现转到 PlayerPage 时我没有重新启动 MediaPlayer。每次都初始化它就完成了


推荐阅读