toast 上的自定义音频

Toast 通知可使用自定义音频,从而让你的应用展现品牌的独特音效。 例如,消息应用可在其 Toast 通知上使用自己的消息传递声音,而不是使用通用的通知声音,以便用户立即知道接收的通知来自该应用。

安装 UWP 社区工具包 NuGet 程序包

若要通过代码创建通知,我们强烈建议使用 UWP 社区工具包通知库,它提供通知 XML 内容的对象模型。 可手动构造通知 XML,但此操作比较杂乱且容易出错。 UWP 社区工具包内部的通知库由 Microsoft 拥有通知的团队生成和维护。

从 NuGet 安装 Microsoft.Toolkit.Uwp.Notifications

添加命名空间声明

using Microsoft.Toolkit.Uwp.Notifications;

添加自定义音频

Windows 移动版始终支持 toast 通知中的自定义音频。 但是,只有版本 1511(内部版本 10586)的桌面设备添加了对自定义音频的支持。 如果将包含自定义音频的 toast 发送到版本 1511 之前的桌面设备,该 toast 将处于静音模式。 因此,对于版本 1511 之前的桌面设备,toast 通知中不应包含自定义音频,这样通知至少会使用默认通知声音。

已知问题:如果使用版本 1511 的桌面设备,只有在通过 Microsoft Store 安装应用时,自定义 toast 音频才能正常工作。 这意味着在提交到 Microsoft Store 之前无法在本地测试桌面设备上的自定义音频,但只要从 Microsoft Store 安装应用,音频便可正常工作。 我们已在周年更新中修复了此问题,因此本地部署的应用中的自定义音频将正常工作。

var contentBuilder = new ToastContentBuilder()
    .AddText("New message");

    
bool supportsCustomAudio = true;
 
// If we're running on Desktop before Version 1511, do NOT include custom audio
// since it was not supported until Version 1511, and would result in a silent toast.
if (AnalyticsInfo.VersionInfo.DeviceFamily.Equals("Windows.Desktop")
    && !ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 2))
{
    supportsCustomAudio = false;
}
 
if (supportsCustomAudio)
{
    contentBuilder.AddAudio(new Uri("ms-appx:///Assets/Audio/CustomToastAudio.m4a"));
}

// Send the toast
contentBuilder.Show();

支持的音频文件类型包括:

  • .aac
  • .flac
  • .m4a
  • .mp3
  • .wav
  • .wma

支持的音频文件源:

  • ms-appx:///
  • ms-resource

不支持的音频文件源:

  • ms-appdata
  • http://、https://
  • C:/、F:/ 等。

发送通知

发送带音频的通知与发送常规通知相同(只需调用 Show 方法)。 若要了解详细信息,请参阅发送本地 toast