none
WP后台播放时,AudioStreamingAgent无故被Cancel RRS feed

  • 问题

  • Hi,

    我现在需要后台播放流媒体,实现了一个AudioPlayerAgent 和 AudioStreamingAgent,其中在AudioStreamingAgent使用了Mp3MediaStreamSource.

    现在的问题是,当我播放完一首歌曲时,会在AudioPlayerAgent引发TrackEnded事件,然后我在事件处理中切换到下一首,这是我切换到一首时部分代码:

    protected override void OnPlayStateChanged(BackgroundAudioPlayer player, AudioTrack track, PlayState playState)
    {
                switch (playState)
                {
                    case PlayState.TrackEnded:
                        //如果正在播放,则播放下一首,否则播放当前选中的
                        if(player.Track==null)
                        {
                            player.Track = GetDefaultTrack();
                        }
                        else
                        {
                            player.Track = GetNextTrack();
                        }
                        break;
                 }
    }

    执行完这段代码之后,在AudioStreamingAgent会被调用OnCancel() ,看了下MSDN,此方法是有系统调用的。

    调用完OnCancel,后台播放的资源就被释放了, 其它地方没有调用BackgroundAudioPlayer.Close或Stop。

    为什么OnCancel会被系统调用?


    2012年9月20日 10:53

答案