【问题标题】:How to do Windows 8.1 "Now Playing" global audio playback如何进行 Windows 8.1“正在播放”全局音频播放
【发布时间】:2026-01-23 14:10:01
【问题描述】:

我正在开发一个 Windows 8.1 商店应用程序,并且我正在使用 Hub Control 作为基础。

虽然我已经成功地弄清楚了如何使用 MediaElement 控件进行全局音频播放,但我不知道如何拥有一个类似于 Audible 应用程序的“正在播放”系统。

我希望主集线器控制页面有一个更大的“正在播放”控件,并在各个项目页面上在屏幕右上角有一些较小的控件。

我已经阅读了所有关于媒体播放的文档和教程,但我似乎找不到任何有关如何执行此操作的信息。

谁能指出我正确的方向?

谢谢!

【问题讨论】:

    标签: c# audio windows-store-apps windows-8.1 mediaelement


    【解决方案1】:

    创建适合您需求的自定义UserControl

    为它创建两个VisualStates,大小不一。

    然后挂钩到您的 HubControl 的 SectionsInViewChanged 事件。

    删除主页后,转到较小的VisualState,然后在重新添加时,返回较大的VisualState。您还可以使用VisualTransition 在两者之间制作漂亮的动画。

    【讨论】:

    • 这能解决导航停止音频/视频的问题吗?目前,这是我最大的障碍:我需要继续播放音频,并且无论我在哪个页面上都需要能够控制它。
    • 为此,您需要使用SystemMediaTransportControls
    • 据我了解,SystemMediaTransportControls 用于用户使用硬件按钮时的系统范围控件。我实际上有那个部分工作,当你切换到另一个应用程序时可以播放音频。我无法开始工作的是 Audible 的应用程序如何能够在其主页以及您导航到的每个页面上都有播放控件。能够控制每个页面的播放音频。
    • 您可以使用相同的SystemMediaTransportControls 作为您的“系统范围”媒体播放器。然后,您可以让您的媒体控件以相同的方式修改该系统播放器上的值。如果您创建自定义UserControl 来执行此操作,那么您只需执行一次。除非你问如何有一个单一的MediaElement 来“跟随”用户从一个页面到另一个页面?
    • 我在考虑单个 MediaElement 方法,但自定义 UserControl 方法也可以。