Windows phone 8.1 无法在windows phone 8.1 toast通知中播放自定义音频wav文件

Windows phone 8.1 无法在windows phone 8.1 toast通知中播放自定义音频wav文件,windows-phone-8.1,toast,Windows Phone 8.1,Toast,我在WindowsPhone8.1中遇到了一个吐司通知问题。(准确版本:8.10.14157.200)。 我有一个向手机发送toast通知的应用程序。 我想用这个toast通知播放自定义声音。 但是,windows phone只播放其默认的通知声音,而不是我在toast XML中指定的我自己的声音 <?xml version="1.0" encoding="UTF-8"?> <toast duration="long"> <visual> &

我在WindowsPhone8.1中遇到了一个吐司通知问题。(准确版本:8.10.14157.200)。 我有一个向手机发送toast通知的应用程序。 我想用这个toast通知播放自定义声音。 但是,windows phone只播放其默认的通知声音,而不是我在toast XML中指定的我自己的声音

<?xml version="1.0" encoding="UTF-8"?>
<toast duration="long">
   <visual>
      <binding template="ToastText02">
         <text id="1">Kainat</text>
         <text id="2">Hi</text>
      </binding>
   </visual>
 <audio src="/Assets/hodor.wav" />
</toast>

凯纳特
你好
我尝试了以下音频元素,但没有成功

<audio src="hodor.wav" />
<audio src="/hodor.wav" />
<audio src="/Assets/hodor.wav" />
<audio src="ms-appx:///Assets/hodor.wav" />
<audio src="ms-appx:///hodor.wav" />

我还尝试了静音(只是为了验证XML中的音频元素是否有效)


这起作用了,声音被抑制了

我已经在我的项目中添加了hodor.wav,也在我的visual studio项目中添加了Assets文件夹。 还将此wav资源的“复制到输出目录”选项设置为“始终复制”


有什么我遗漏的吗?

根据WNS中音频标记的文档,在音频元素中不支持完全自定义的声音(与WP8.0 GDR3上的WPNS相反)。您只能使用以下字符串来影响播放的通知类型(以及操作系统内置的通知类型)

  • ms winsoundevent:Notification.Default
  • ms winsoundevent:Notification.IM
  • ms winsoundevent:Notification.Mail
  • ms winsoundevent:通知。提醒
  • ms winsoundevent:Notification.SMS
  • ms winsoundevent:Notification.Looping.Alarm
  • ms winsoundevent:Notification.Looping.Alarm2
  • ms winsoundevent:Notification.Looping.Alarm3
  • ms winsoundevent:Notification.Looping.Alarm4
  • ms winsoundevent:Notification.Looping.Alarm5
  • ms winsoundevent:Notification.Looping.Alarm6
  • ms winsoundevent:Notification.Looping.Alarm7
  • ms winsoundevent:Notification.Looping.Alarm8
  • ms winsoundevent:Notification.Looping.Alarm9
  • ms winsoundevent:Notification.Looping.Alarm10
  • ms winsoundevent:Notification.Looping.Call
  • ms winsoundevent:Notification.Looping.Call2
  • ms winsoundevent:Notification.Looping.Call3
  • ms winsoundevent:Notification.Looping.Call4
  • ms winsoundevent:Notification.Looping.Call5
  • ms winsoundevent:Notification.Looping.Call6
  • ms winsoundevent:Notification.Looping.Call7
  • ms winsoundevent:Notification.Looping.Call8
  • ms winsoundevent:Notification.Looping.Call9
  • ms winsoundevent:Notification.Looping.Call10

@OliverUlm:MSDN说WP8.1可以使用自定义声音

根据MSDN中的一页。它说:

“在Windows Phone 8.1上,此属性还可以包含本地音频文件的路径,前缀如下:

ms-appx:///
ms-appdata:///
但是,我仍然不知道如何播放声音

更新:

<?xml version="1.0" encoding="UTF-8"?>
<toast>
  <visual>
    <binding template="ToastText02">
      <text id="1">Title</text>
      <text id="2">Message</text>
    </binding>
  </visual>
  <audio src="ms-appx:///Audio/Female/0530.mp3" />
</toast>

标题
消息
它适合我。

试试这个例子:

代码:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
        XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
        XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
        toastTextElements[0].AppendChild(toastXml.CreateTextNode("Test1"));
        toastTextElements[1].AppendChild(toastXml.CreateTextNode("Test2"));
        IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
        XmlElement audio = toastXml.CreateElement("audio");
        string sound = "test1.mp3";
        if (sound != null)
            audio.SetAttribute("src", "ms-appdata:///local/" + sound);
        else
            audio.SetAttribute("src", "ms-appx:///sounds/Bell.mp3");
        toastNode.AppendChild(audio);
        ToastNotifier toastNotifier =
         ToastNotificationManager.CreateToastNotifier();
        ToastNotification toastNotification = new ToastNotification(toastXml);
        toastNotifier.Show(toastNotification);
    }
使用xaml: 在XMLFile1.xml中:

     <?xml version="1.0" encoding="UTF-8"?>
     <toast>
      <visual>
       <binding template="ToastText02">
        <text id="1">Test1</text>
        <text id="2">Test2</text>
      </binding>
     </visual>
   <audio src="ms-appdata:///local/test1.mp3"/>
 </toast>

你有没有这样做过?如果有,怎么做?我面临着同样的问题。这里有什么帮助吗?这是我对这个问题的回答:如果其他人也面临同样的问题,你能帮我在C中如何做吗?我在C中做的时候有点困惑。谢谢!@Kishorbiramoli你能详细解释一下你在C中做的意思吗?Windows Phone Toast通知需要一个XML对象才能工作。我不想使用XML。我正在搜索类似的内容。我找到了解决方案。xmlement audio=toastXml.CreateElement(“audio”);audio.SetAttribute(“src”,“ms-appx:///Sound\\Alarm.mp3“;toastNode.AppendChild(音频);是的,您可以这样做,但您基本上创建了一个XML对象(我在上面说过)。但是,不同的人有不同的方法。
     <?xml version="1.0" encoding="UTF-8"?>
     <toast>
      <visual>
       <binding template="ToastText02">
        <text id="1">Test1</text>
        <text id="2">Test2</text>
      </binding>
     </visual>
   <audio src="ms-appdata:///local/test1.mp3"/>
 </toast>
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(XDocument.Load("XMLFile1.xml").ToString());
        ToastNotifier toastNotifier =
        ToastNotificationManager.CreateToastNotifier();
        ToastNotification toastNotification = new ToastNotification(xmldoc);
        toastNotifier.Show(toastNotification);
    }