【问题标题】:UWP Binding system media transport controls to XAML media transport controlsUWP 将系统媒体传输控件绑定到 XAML 媒体传输控件
【发布时间】:2016-09-05 11:23:34
【问题描述】:

有没有办法从后台媒体播放器绑定系统媒体传输控件:

BackgroundMediaPlayer.Current.SystemMediaTransportControls

到 xaml 中添加的媒体传输控件:

        <MediaTransportControls Name="foregroundMediaControl" HorizontalAlignment="Left" Margin="10,504,0,0" VerticalAlignment="Top" Width="340" IsVolumeButtonVisible="False" IsVolumeEnabled="False" IsZoomButtonVisible="False" IsZoomEnabled="False" IsSeekEnabled="True" IsFullWindowEnabled="False" IsFullWindowButtonVisible="False" IsAccessKeyScope="True" IsNextTrackButtonVisible="True" IsPreviousTrackButtonVisible="True" IsTextScaleFactorEnabled="False" UseSystemFocusVisuals="False" Height="101"/>

不为两个传输控件复制代码和设置处理程序?我想使用 BackgroundMediaPlayer 播放音乐,并且能够在应用程序处于前台时使用媒体传输控件来控制它,并在应用程序处于后台时使用系统媒体传输控件来控制它。 希望你明白:)

【问题讨论】:

    标签: c# xaml uwp media


    【解决方案1】:

    我想使用 BackgroundMediaPlayer 播放音乐,并能够在应用程序处于前台时使用媒体传输控件来控制它,并在应用程序处于后台时使用系统媒体传输控件来控制它。

    我认为您可能误解了背景音频是什么。

    对于Windows 10,1607之前的版本,可以参考Legacy background media playback,后台播放由两个进程组成:App UI和客户端逻辑(前台),后台播放任务。如您所知,后台任务通过 System Media Transport Controls 与系统进行通信。而在前台,其实也使用System Media Transport Controls来控制MediaPlayer不用在前台再放一个MediaElement,否则MediaPlayerMeidaElement将在前台一起播放相同的源。换句话说,无需将系统媒体传输控件绑定到 XAML 媒体传输控件。您可以在文档中查看系统设计图。并且这次只支持背景音频,不支持背景视频。

    从 Windows 10 版本 1607 开始,对媒体播放 API 进行了重大改进。现在后台是一个简化的单进程设计,它自动与系统媒体传输控制集成。为了利用这些改进,播放媒体的推荐最佳做法是使用MediaPlayer 类而不是MediaElement 进行媒体播放。因此,也无需将系统媒体传输控件绑定到 XAML 媒体传输控件。而这一次,大惊喜,MediaPlayer 支持视频。可以参考Play audio and video with MediaPlayer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多