最小化或锁定时继续播放 Audiograph UWP 输出

Keep still playing Audiograph UWP output when minimized or locked

使用录音图配置音频真的很容易类,但是当我最小化或锁定屏幕时,音频会暂停。有没有解决最小化时如何保持音频播放的问题?

在我的例子中,我使用了超过 10 个同时播放的 mp3 文件,其中的多种效果一直在变化。唯一的方法可能是将输出发送到流并使用后台任务的后台媒体获取它,但我没有做任何类似的事情来知道它是否可行。

应该有两种解决方案:

  1. 使用 BackgroundMediaPlayer,您可以在 MSDN 上找到 sample and tutorial。由于BackgroundMediaPlayer只能播放独立存储或远程URI中的文件,您可以先利用AudioFileOutputNode将音频图处理后的音频内容保存到文件中,然后将文件加载到独立存储中供BackgroundMediaPlayer使用;

  2. 您还可以使用ExtendedExecutionSession,这意味着您可以向操作系统发送请求,以延长在操作系统终止应用程序之前完成待处理任务的时间范围。当然,这并不是真正的后台任务,因为它是为了让您在进入新的电源状态时有一些额外的时间来做额外的工作。

如果您只需要 AudioGraph 而不需要 MediaPlayer,实际上您可以 运行 在 BackgroundMediaPlayer 的后台任务中使用 AudioGraph,而无需将其连接到 MediaPlayer。

我拍了background audio sample,即使前景暂停,我的音频图运行也很好! BackgroundMediaPlayer 使后台任务保持活动状态,作为奖励,您可以使用 SendMessageToForeground/Background 方法与主应用程序通信。