Windows phone 8.1 无法在windows phone 8.1 toast通知中播放自定义音频wav文件
我在WindowsPhone8.1中遇到了一个吐司通知问题。(准确版本:8.10.14157.200)。 我有一个向手机发送toast通知的应用程序。 我想用这个toast通知播放自定义声音。 但是,windows phone只播放其默认的通知声音,而不是我在toast XML中指定的我自己的声音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> &
<?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
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);
}