1

我在 windows phone 7 (nokia lumia 800) 上播放音频时遇到问题:

该应用程序是windows phone 7.1,我在诺基亚lumia 800(WP7.8)和lumia 820(WP8.0)上试过

我将 URL ( http://abc.radiostreaming.dk/ ) 放入我的播放列表:

AudioTrack track = new AudioTrack(this.streamURI, "FOO", "BAR", "", null);
BackgroundAudioPlayer.Instance.Track = track;

我使用不同的事件处理程序订阅了 BackgroundAudioPlayer.Instance.PlayStateChanged 以更改 UI(在“播放”和“停止”之间来回更改按钮,并更新“正在播放”-文本字段)

当我按下播放时,UI 会通过事件处理程序更新以显示“缓冲”图标,然后在 BackgroundAudioPlayer.Instance.PlayerState 更改为 PlayState.Playing 时再次将其更改为“正在播放”。

在诺基亚 lumia 820 UI 上,声音按预期工作,在 lumia 800 BackgroundAudioPlayer.Instance.PlayStateChanged 上触发(更改为“正在播放”)并且耳机中有一个微弱的滴答声,但在出现之前有 5-6 秒的延迟音乐开始播放。

延迟当然很烦人(声音在 820 上几乎立即播放),但如果我能检测到它并相应地更新 UI,这是可以接受的,现在只使用

BackgroundAudioPlayer.Instance.PlayStateChanged.

关于我可以订阅的其他事件的任何想法,或者调整声音开始播放速度的方法(也许调整缓冲?到目前为止还没有运气......)

4

2 回答 2

1

我做了一个解决方法:当我得到

BackgroundAudioPlayer.Instance.PlayStateChanged -> PlayState.Playing

我检查BackgroundAudioPlayer.Instance.Position.Milliseconds,如果它为0,则流并没有真正播放,所以我只是每100ms重新检查一次,然后只在BackgroundAudioPlayer.Instance.Position.Milliseconds时将UI从“缓冲”更改为“正在播放” > 0

它解决了问题,但比你想要的更混乱,哦,好吧:)

于 2013-04-15T09:36:37.803 回答
0

首先,排除与服务器的连接问题。两个设备是否在同一个 WiFi 连接上?如果是这样,请尝试来自WAUG的这个流 URL ,我已经设置了一个大的初始缓冲区刷新:

http://143.226.75.100/waug_mp3_128k

一些设备和软件尝试开始解码,但很快意识到它们没有足够的数据。一些解码器需要比其他解码器更多的数据。有没有办法在播放之前增加缓冲区大小?如果没有,您可能必须自己管理此缓冲区并选择更大的大小。

于 2013-04-11T14:17:57.567 回答