none
关于后台音频代理的相关问题 RRS feed

  • 问题

  • 想做一个音乐播放器,音乐列表用LongListSelector绑定了数据,如何实现按下相应Item播放相应的音乐呢?

    看到了MSDN的一个文章 msdn.microsoft.com/zh-cn/library/hh202978(v=vs.92).aspx

    但是这个文章里用的播放列表不是动态更新的,也没有实现按相应的Item播放相应的音乐,当然也没有单曲循环,之类的东东……

    请问大侠这个问题怎么办?

    最好能给一个示例……



    2014年7月20日 13:23

全部回复

  • 在后台音频代理的页面添加了一个静态的List用做音乐播放列表

    private static List<AudioTrack> PlayList = new List<AudioTrack>();

    通过这方法向列表添加音乐

    public static void AddMusicToPlayList(string source, string title, string artist, string album)
    {
    AudioTrack audioTrack = new AudioTrack(new Uri(source, UriKind.Relative), title,artist, album, null);

    PlayList.Add(audioTrack);
     }

    然后就得到了这样的异常!(音乐已经写入独立存储)

    Duration “audioTrack.Duration”引发了“System.Runtime.InteropServices.COMException”类型的异常 System.TimeSpan {System.Runtime.InteropServices.COMException}

    请问这是什么情况?

    2014年7月22日 13:33
  • 初始化的时候音乐列表中有4首音乐,后来用下面的方法添加一首音乐成功了!没有报错

    public static void AddMusicToPlayList(stringsourcestringtitlestringartiststringalbum) {     AudioTrackaudioTrack=newAudioTrack(newUri(sourceUriKind.Relative), titleartistalbumnull);     _playList.Add(audioTrack);     MessageBox.Show(_playList.Count.ToString()); }           

    MessageBox显示的是5,这很正常!但是,调试的时候发现有情况,其实播放列表中还是4首音乐。而且通过单目调试验证了猜测

    public void PlayNextTrack(BackgroundAudioPlayer player)
    {
        if (++currentTrackNumber >= _playList.Count)
        {
            currentTrackNumber = 0;
        }
        PlayTrack(player);
    }

    这个函数里监测到Count是4不是5……

    请问这是什么情况,明明刚才显示的是5现在怎么又变成了4……

    2014年7月22日 14:16
  • 初始化的时候音乐列表中有4首音乐,后来用下面的方法添加一首音乐成功了!没有报错

    public static void AddMusicToPlayList(stringsourcestringtitlestringartiststringalbum) {     AudioTrackaudioTrack=newAudioTrack(newUri(sourceUriKind.Relative), titleartistalbumnull);     _playList.Add(audioTrack);     MessageBox.Show(_playList.Count.ToString()); }       

    MessageBox显示的是5,这很正常!但是,调试的时候发现有情况,其实播放列表中还是4首音乐。而且通过单目调试验证了猜测

    publicvoidPlayNextTrack(BackgroundAudioPlayerplayer) {     if (++currentTrackNumber>=_playList.Count)     {         currentTrackNumber=0;     }     PlayTrack(player); }      

    这个函数里监测到Count是4不是5……

    请问这是什么情况,明明刚才显示的是5现在怎么又变成了4……

    2014年7月23日 2:41
  • 你一步步的输出出来看看了。
    2014年7月24日 3:11
  • 你好

    上面的例子中我就是一步步输出的

    我明明向音乐列表中添加了音乐,也显示成功了但是为什么,当我切换下一首音乐时却发现刚刚添加的音乐没了……

    这是什么情况?

    很感谢您的回复,这个问题困扰我好久了……一直没有解决,希望您的给点建议

    上面的代码都是在后台音频代理的那个类中写的,我不知道这么写是不是不对。

    windows phone 平台的音乐播放器都实现了动态扩充音乐列表……求指教

    2014年7月24日 11:51