Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BackgroundAudioPlayer没有';我不能开始玩了_C#_Windows Phone 8_Audio Streaming_Background Audio_Mediastreamsource - Fatal编程技术网

C# BackgroundAudioPlayer没有';我不能开始玩了

C# BackgroundAudioPlayer没有';我不能开始玩了,c#,windows-phone-8,audio-streaming,background-audio,mediastreamsource,C#,Windows Phone 8,Audio Streaming,Background Audio,Mediastreamsource,WindowsPhone8应用程序。 我们正在使用/播放MP3文件,这些文件可以在本地缓存或从web加载 下载文件时,我们仍在使用AudioStreamingAgent/Mp3MediaStreamSource,以确保在播放当前文件时能够预缓存下一个文件。 是的,我们可以只使用WP8内置播放器来缓存文件,但在这种情况下,我们将无法预缓存下一个文件 问题: 几首曲目之后,BackgroundAudioPlayer不再播放 已执行AudioStreamingAgent.OnBeginStreamin

WindowsPhone8应用程序。 我们正在使用/播放MP3文件,这些文件可以在本地缓存或从web加载

下载文件时,我们仍在使用AudioStreamingAgent/Mp3MediaStreamSource,以确保在播放当前文件时能够预缓存下一个文件。 是的,我们可以只使用WP8内置播放器来缓存文件,但在这种情况下,我们将无法预缓存下一个文件

问题: 几首曲目之后,BackgroundAudioPlayer不再播放

  • 已执行AudioStreamingAgent.OnBeginStreaming
  • С执行创建MediaStreamSource的ode
  • 方法与新的MediaStreamSource实例一起执行
  • PlayStateChanged在后台进程中被激发,其中PlayState.TrackReady和player.Play()在本例中被调用
  • 毕竟,我看到轨迹以UVC显示,但它处于“暂停”状态。在UVC中按“播放”将调用后台的OnUserAction,该操作将调用player.Play()。没有什么变化

    (样本基于)

    使用示例代码复制的步骤:

  • 安装应用程序
  • 按“预加载轨道”按钮。它将mp3文件从XAP复制到IsolatedStorage
  • 按“轨道1”按钮。曲目开始播放后,按“曲目2”按钮。然后,在曲目2开始播放后,按“曲目3”按钮
  • 继续执行步骤3,直到按下“Track*”按钮后,曲目才开始播放
  • 选定的最后一个曲目将在UVC和页面进度条上方显示为活动曲目(请参阅)
  • 在大多数情况下,按其他曲目按钮没有任何区别
  • 这个问题在WP8和WP8.1开发者预览版的设备和模拟器上都会重现


    更新:内存不足并非如此。使用backgroundlog.xml文件再现问题并查看该文件显示,此图片的最后一列是“内存使用量|最大允许内存使用量”

    根据我的经验,我的建议是移植并开始使用WPA8.1,在这里播放背景音频的限制消失了

    在为WP开发音乐播放器应用程序并尝试使用
    mediastreamsource
    缓存音乐时,我最终得出结论,这可能是不可能的。在操作系统开始执行任何任务或后台类型的工作之前,您似乎有一段固定的时间或其他变量

    我为一位福音女士写了这篇文章:

    以下是我在尝试解决此问题时喜欢的一些其他SO:


    也许你需要后退一步,重新评估你的设计;从我收集的资料来看,你基本上是在播放一首曲目,并在你还在播放的时候预切下一个文件(如果我错了,请纠正我)。这听起来是一件很容易自己实现的事情,你考虑过这样做吗?山姆,问题不在于设计本身,而在于WP8。该示例不做任何预处理-它只是通过MediaStreamSource/AudioStreamingAgent播放本地文件。缓存下一个文件只是使用MediaStreamSource进行播放的一个原因。这不是原因本身。不幸的是,我们不能改变设计,因为这是唯一适合我们的方法;所以你的基本要求是只播放本地mp3文件?我正试图确定您在这里做什么(您的核心目标是什么),以便我能提供更好的帮助。值得注意的是,您的“问题复制示例”是一个VisualStudioVersion=12.0.30324.0解决方案,也就是说,它不会在VS2010中为我打开。我已经阅读了您的问题,我只是想验证一下使用
    MediaStreamSource
    是绝对必要的。德里克,谢谢你的回答。但是,a)我已经看到了所有这些线程,谢谢!b) 如果它是第三方应用程序,那么也许我们可以使用8.1预览版。没有人知道发布日期,solid business无法发布正在为所有用户准备的预览版本的应用程序(不知道何时)。我们和史密斯女士谈过,他们也没有说确切的日期。c) 文档很有趣,实际上我们有一些类似于#3的东西,但使用HTTP流实现。