我正在编写一个应用程序,我需要使用自定义声音进行Toast通知(从云端发送)。 MSDN声明音频剪辑必须存储在应用程序的安装目录或本地存储文件夹中。那怎么办呢?
我尝试了How to play background audio for Windows Phone的CopyToIsolatedStorage()
代码示例。它正确地获取音频剪辑,但是当应该显示toast时,设备不会播放任何音频,甚至显示toast,这表示它无法正确找到音频剪辑。在应用程序中,我有一个方法,当应用程序在前台时显示推送通知的内容。从那里我可以看到使用toast.mp3声音标签正确发送和接收Toast通知。所以问题必须在应用程序中,但我无法弄清楚我做错了什么。
Tl;博士版: 我想更改吐司通知声音,我的设备运行WP8与Update 3,我有一个5秒长的MP3。我无法弄清楚应该如何以及在哪里放置音频剪辑。
答案 0 :(得分:2)
我认为您不需要将声音复制到隔离存储中,只需将其放入主项目中并将其设置为内容即可。然后在你的Push中引用它。
<wp:Sound>toast.mp3</wp:Sound>
或者如果它位于项目的Assets文件夹中
<wp:Sound>Assets/toast.mp3</wp:Sound>
注意:这仅适用于Windows Phone 8 Update 3及更高版本,适用于所有Windows Phone 8.1。
答案 1 :(得分:1)
所以问题是我盲目地假设只有<wp:Sound>toast.mp3</wp:Sound>
或new Uri("toast.mp3", UriKind.RelativeOrAbsolute)
的音频片段,就像MSDN教程中那样,当文件被复制到隔离存储的根目录时但事实并非如此。在我的案例Audio\
中,您必须将项目中剪辑所在的目录包含在路径中。 Thaks前往WiredPrairie指出这一点。
所以总结一下:
使用How to play background audio for Windows Phone中的CopyToIsolatedStorage()
将要使用的音频剪辑复制到隔离的存储空间,然后按照Using custom sounds in toasts on Windows Phone 8 Update 3 中的说明进行操作。并记住将目录结构包含在剪辑路径中或将剪辑放在项目的根目录中。