使用uwp实现一个简单的媒体播放器2

        以上是我第二次实现功能后的大体的示例。这一次添加了两个功能,一个是播放在线的音频,另一个是下载正在播放的音频并下载到用户的音乐文件夹中。其他的功能并没有改变。下面具体叙述实现的过程。

一、播放在线的音频

        刚拿到功能的时候,我觉得这个功能是比较难实现的一个,但做的时候发现这个反而是很简单的。功能主要是由一个TextBox和两个函数实现的。就是将MediaElement的source属性设置为输入到TextBox中的uri。这个功能在微软官方的MediaElement文档中叙述的很详细,也是对播放源的补充:不仅可以选择本地文件,也可以选择网上的音频播放。参照文档基本上改动几个变量名就可以实现功能了。以下是我的代码:

参考文档:https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.MediaElement

二、下载音频到指定文件夹

        这个功能实现的时候用了很长时间,个人认为是这次任务最难的一个部分。它涉及到了很多东西,包括如何下载音频,从哪下载音频,如何下载到指定文件夹,如何找到用户的音乐文件等等。关于这个我也参考了很多微软的文档:

https://docs.microsoft.com/en-us/uwp/api/windows.networking.backgroundtransfer.downloadoperation

https://docs.microsoft.com/enus/uwp/api/Windows.Storage.KnownFolders#Windows_Storage_KnownFolders_MusicLibrary

https://docs.microsoft.com/en-us/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-libraries

        但是这些并没有解决我的问题,因为这些都只是零件我还需要把他们组合起来。在这期间我还看了另一篇博客:https://www.cnblogs.com/T-ARF/p/5886153.html。这篇文章解决了我大部分的疑问,他让我把之前看过的那些结合了起来,完整的实现了下载音频到指定文件夹这一功能。我的代码如下:


        主要是根据Uri的结尾判断是不是音频文件,如果是音频文件,那么在音乐中创建一个NewSong.mp3。然后将Uri中的信息传到Buffer中,再将Buffer的数据写入之前创建的文件中。为图简单我就没有去设计视频文件的下载。在使用的过程中记得将Package.appxmanifest中的音乐库打钩。

附之前的博客和Github地址:

https://www.jianshu.com/p/a56059f88594

https://github.com/ilike123/player/tree/master/player

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,316评论 3 283
  • 2017写的开篇就是“因为爱情”^_^这几日每晚12点之后都在追剧,剧本到人物情节设计都挺low的,吸引我的居然就...
    海绪清风阅读 3,038评论 0 2
  • 驿外断桥边,寂寞开无主 已是黄昏独自愁,更着风和雪 无意苦争春,一任群芳妒 零落成泥碾作尘,只有香如故 那年大雪,...
    血影红梅阅读 3,720评论 0 3
  • 小时候爱得病。半夜身子烧得滚烫,吭哧吭哧地想哭,妈妈醒了,撇下小弟弟,到我被窝里陪我,感觉妈妈的身体好软好温和,于...
    我为云朵阅读 3,398评论 1 0
  • 今天,下了一场春雨。 早上,爸爸说外面正在下雨,刚开始我还不相信,急忙跑到窗户边去看。哇!外面果真下起了雨,而...
    峰树燕阅读 1,657评论 0 1