c# - 如何使用通用 Windows 应用程序中的 BackgroundMediaPlayer 播放内部声音

标签 c# windows-10 win-universal-app uwp

我正在用 C# 创建一个计时器。当计时器结束时,用户将收到通知。

如果我的应用被挂起,我会使用 ToastNotificationManager 安排通知,并在 toast XML 中将声音设置为内部声音,例如:

<audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop='true'/>

但是,如果我的应用程序在前台运行,我不想安排通知,而只是使用 BackgroundMediaPlayer 播放声音。

当然,我想使用与通知中相同的警报声音。但我还没有找到解决内部声音的方法。

我发现了这个:

BackgroundMediaPlayer.Current.SetUriSource(new Uri("ms-appx:///Assets/Sounds/alarm01.wav"));
            BackgroundMediaPlayer.Current.Play();

但这需要我将所有系统声音复制到我的应用程序中,但我不想这样做,因为它会增加大小。

最佳答案

我创建了一个演示来重现该问题,发现您可以直接使用内部声音

BackgroundMediaPlayer.Current.SetUriSource(new Uri("ms-winsoundevent:Notification.Looping.Alarm10"));
BackgroundMediaPlayer.Current.Play();

它在我的 UWP 项目中有效。我希望它也能在您的项目中发挥作用。

关于c# - 如何使用通用 Windows 应用程序中的 BackgroundMediaPlayer 播放内部声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34149405/

相关文章:

c# - 是否可以通过 IContext 解析 Ninject 工厂方法中的调用者实例?

c# - 正则表达式检查文件格式是否符合 C# 中的预期

windows-8 - Windows 10 可以从商店下载 Windows 8.0 应用程序吗?

fonts - 如何修复 Julia 中的字体错误?

c# - 如何保证我的 Async 方法线程安全?

c# - "WireUpCoreRuntime"任务意外失败

c# - 从枚举值列表创建可检查上下文菜单的通用方法

c# - 无法将类型 'double' 隐式转换为 'int'

c# - 在 Windows 10 应用程序中使用图像更新辅助图 block

android - 如何创建基于 MonoGame 的类库以供 UWP、iOS 和 Android 使用