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

使用uwp实现一个简单的媒体播放器2_第1张图片
使用uwp实现一个简单的媒体播放器2_第2张图片

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

一、播放在线的音频

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

使用uwp实现一个简单的媒体播放器2_第3张图片

参考文档: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。这篇文章解决了我大部分的疑问,他让我把之前看过的那些结合了起来,完整的实现了下载音频到指定文件夹这一功能。我的代码如下:


使用uwp实现一个简单的媒体播放器2_第4张图片
使用uwp实现一个简单的媒体播放器2_第5张图片

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

附之前的博客和Github地址:

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

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

你可能感兴趣的:(使用uwp实现一个简单的媒体播放器2)