【问题标题】:How to Add Songs to a SongCollection如何将歌曲添加到 SongCollection
【发布时间】:2014-04-03 16:25:21
【问题描述】:

在我的应用程序中,我使用 MediaPlayer 播放来自用户 MediaLibrary 的歌曲。但是,一旦我定义了歌曲集,我就无法将其添加到歌曲集!

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: c# windows-phone-7 windows-phone-8 media-player


    【解决方案1】:

    为了将来参考,可以向MediaLibrary 添加或删除歌曲,但仅限于 Windows Phone 8,因为引入了一组新的MediaLibraryExtensions...

    【讨论】:

      【解决方案2】:

      您无法使用当前 SDK 创建或修改 SongCollection

      【讨论】:

      • 那有没有其他类型可以修改和使用 MediaPlayer 播放?
      • 如果您的意思是要创建自己的播放列表,则需要从头开始创建自己的播放列表(例如,使用 List),如果用户关闭,它将无法工作BackgroundAgent 不支持您的应用作为 MediaLibrary。因此,如果当前播放的歌曲播放完毕,如果您的应用在后台运行,则无法从列表中加载下一首歌曲。
      • 啊好吧我还是试试看,但是我尝试创建一个List<Song>,但 MediaPlayer 不接受这是一个有效类型,它不会让我使用(SongCollection)List<Song> ,你知道我还能尝试什么吗?
      • 很遗憾没有。当前的 SDK 在媒体播放器访问恕我直言方面,开发人员可以使用它做的事情太有限了。您将无法转换为SongCollection,也无法将List<Song> 传递给MediaPlayer。相反,您需要以某种方式监控歌曲何时发生变化(可能使用these events),然后获取列表中的下一首歌曲并播放。本质上,您一次只播放列表中的一首歌曲。
      • 当用户按下“下一个”或歌曲结束时,您只需移动到列表中的下一个项目并播放它。但是,您的应用程序必须始终处于前台才能正常工作。正如您从这篇文章 (stackoverflow.com/questions/15019526/…) 中看到的那样,似乎没有创建媒体播放器 atm 的好方法。
      【解决方案3】:

      使用列表

      List<SongCollection> lstAlbum = new List<SongCollection>();
      

      然后:

      using (MediaLibrary library = new MediaLibrary())
      {
          foreach (Album item in library.Albums)
          {
              lstAlbum.Add(item.Songs);
          }
       }
      

      希望有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-08
        • 1970-01-01
        • 1970-01-01
        • 2014-04-19
        • 1970-01-01
        • 2016-06-11
        • 2022-01-19
        • 1970-01-01
        相关资源
        最近更新 更多