BackgroundAudioPlayer-缓冲&媒体流

时间:2012-02-01 19:35:31

标签: windows-phone-7 windows-phone-7.1 background-audio

我创建了一个MediaStreamSource来解码实时互联网音频流并将其传递给BackgroundAudioPlayer。现在,这在设备上运行良好。但是我现在想要实现某种形式的缓冲控制。目前所有这些都在WLAN上工作得很好 - 但是我担心在移动运营商网络的现场情况下,流中会有大量的切入。 我想知道的是,如果有人对如何最好地实施缓冲有任何建议。

  • 背景音频播放器本身是否会在它开始播放之前建立某种缓冲区,如果需要,可以增加它的大小吗?

  • 我可以在采样时设置一些东西以帮助缓冲,或者我只是需要实现一种存储缓冲区,因为我从网络中检索流并在采样之前建立一个实质性的储备。 / p>

其他人采取了什么方法解决这个问题? 谢谢, 布赖恩

2 个答案:

答案 0 :(得分:1)

我看到的一种方法是让两个进程管理流。第一个获取流并在隔离存储中将其写入一系列顺序编号的文件。第二个读取文件并播放它们 显然这是一个非常简化的描述,但希望你能得到这个想法。

答案 1 :(得分:0)

我不知道使用MediaStreamSource会如何影响这一点,但是根据直接来自远程MP3文件或MP3直播无线电流的简单背景音频播放器代理的经验:

  • 播放器会在开始播放曲目之前建立从服务器接收的数据缓冲区。
  • 你无法控制这个缓冲区的大小或填充缓冲区所需的时间(在某些情况下,我看到它需要一分钟的缓冲)。
  • 一旦播放开始,如果您失去连接或带宽太低,以至于您的缓冲区在流启动后被清空,则播放器不会尝试并重新缓冲音频,因此您可能完全丢失音频或者可以切入或进行。
  • 你也无法控制它。

在Matt的回答中实现建议通过允许您控制缓冲并整齐地分离下载和回放来解决这个问题。