Windows Phone 8应用。 我们正在使用AudioStreamingAgent / Mp3MediaStreamSource来播放可以在本地缓存或从网络加载的MP3文件。
当下载文件时,我们仍然使用AudioStreamingAgent / Mp3MediaStreamSource来确保我们能够在播放当前时预先缓存下一个文件。 是的,我们只能将WP8内置播放器用于缓存文件,但在这种情况下我们无法预先缓存下一个文件。
问题: 在几首曲目之后,BackgroundAudioPlayer不再开始播放了。
毕竟,我看到曲目显示在UVC中,但它处于“Paused”状态。在UVC中按“播放”会在后台调用OnUserAction调用player.Play()。什么都没有改变。
Sample with problem reproduction, VS 2012(示例基于Background Audio Streamer Sample)
使用示例代码重现的步骤:
在WP8和WP8.1开发者预览版中,无论是在设备上还是在模拟器上都会重现该问题。
更新:内存不足。使用sample code重新生成问题并查看backgroundlog.xml文件,显示sample uses only 6 Mb out of 20 Mb allowed此图片的最后一列是“内存使用量|允许的最大内存使用量”
答案 0 :(得分:1)
根据我的经验,我的建议是移植并开始使用WPA8.1,其中播放背景音频的限制消失了。
在为WP开发音乐播放器应用程序并尝试使用mediastreamsource
缓存音乐时,我终于得出结论,这可能是不可能的。在操作系统踩踏任何任务或背景类型工作之前,您似乎有一定的时间或其他变量。
我为MS传道者写了这篇文章: https://drive.google.com/file/d/0By_e5C-QWr9Ka3RmbVBlWVF3R1E/edit?usp=sharing
以下是我在尝试解决此问题时所偏好的其他一些内容:
BackgroundAudioPlayer is 'Playing' but not calling GetSampleAsync()
WP7 background audio resources are no longer available
HttpWebRequest from AudioPlayerAgent