在wp8.1 rt中播放应用中的通知音

时间:2015-09-12 11:56:04

标签: c# audio windows-runtime windows-phone-8.1

我们有一个要求,我们需要在收到消息时在应用内播放通知音。

对于这个,如果一首歌在后台播放并且通知出现,那么行为应该是:

  1. 背景歌曲/音频应暂停。
  2. 通知音应该 玩了。
  3. 背景歌曲应该从它的位置恢复 暂停。
  4. 但我通过以下链接通过app播放音频文件:

    1)http://www.jayway.com/2014/04/24/windows-phone-8-1-for-developers-the-background-media-player/ 这会在背景中停止音乐。

    2)http://blogs.msdn.com/b/johnkenn/archive/2013/12/31/supporting-background-audio-in-your-windows-8-1-app.aspx

    3)https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.media.systemmediatransportcontrols.aspx

    但这些都不符合我的目的。

    在wp8中,我们可以在way中完成。

    实现所需功能的任何方向?

1 个答案:

答案 0 :(得分:0)

如果您在收到消息时向用户发送Toast通知,请在您的通知有效负载中添加自定义声音,方法是添加audio标记:

    <toast launch=\"$param\">
       <audio src=\"ms-appx:///Assets/Sounds/$sound.wav\"/>
       <visual>
           <binding template=\"ToastText02\">
               <text id=\"1\">$title</text>
               <text id=\"2\">$msg</text>
           </binding>
       </visual>
    </toast>

要使自定义声音起作用,您需要在项目中包含sound.wav,然后指定路径。我将它放在我的Assets/Sounds/文件夹中,您可以指定其他内容。

当您收到消息时,您也可以尝试从您的应用内发送带声音的祝酒词:

var notificationContent = "...xml...";
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(notificationContent);
var toastNotification = new ToastNotification(xmlDocument);
toastNotification.SuppressPopup = true;
ToastNotificationManager.CreateToastNotifier().Show(toastNotification);

其中notificationContent与上述XML的格式相同,只是转义。