码迷,mamicode.com
首页 > 其他好文 > 详细

uwp----播放器2

时间:2018-04-15 11:39:16      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:mod   page   存储   orderby   zh-cn   nop   loader   决定   flush   

我的播放器2  github:https://github.com/xiongxlxhm/play

增加播放器的功能

  • 在线播放:直接播放在线音频
  • 缓存和播放:将在线音频下载到音乐文件夹,然后播放文件

      前次做的播放器,我觉得他并不美观。所以我这次用了课上老师讲的SplitView,课上就是光听老师讲,但是没有自己试一试,就决定用frame调用各个功能的页面,但是想象总是美好的,我做出来的就是丑。我弄了三个新的page分别来实现播放音乐,视频和下载音乐。

 

点开菜单按钮,有四个功能选择。

技术分享图片

 

一.在线

   点击“在线”按钮,就跳转到网页,播放我们的校歌。

这个功能,做起来相对简单一点。我在网上找了一下

https://social.msdn.microsoft.com/Forums/zh-CN/f1736e5b-619a-4533-8a28-5286f5eac6f2/windows-10-uwp?forum=windowsphonezhchs&forum=windowsphonezhchs

这个网站,是找。MP4的,但是MP3也是一样的。

 

await  Windows.System.Launcher.LaunchUriAsync(new Uri("http://a.b.com/a.mp4"), new Windows.System.LauncherOptions() { ContentType = "video/mp4" });

他介绍了一个这样的代码,我就试着用了,就把他加到了按钮的click事件中,是可以的我就解决了。但是什么也没有懂,所以我看了

https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.system.aspx

这个网站里的一些介绍,是windows.systeml里launcher类下的Launcher.LaunchUriAsync | launchUriAsync 方法。是启动与指定uri方案相关联的程序。通过这个方法就可以访问到在线的音频。

https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh965322(v=win.10)

这个网页就讲了您可以访问作为应用程序包一部分提供的应用程序文件中的文件资源,也可以将其作为组件或框架包的一部分包含在应用程序数据或网络中。

二.本地选择

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

这个网页里是将现有的音乐、图片和视频文件夹添加到相应的库。 你还可以从库中删除文件夹、获取库中的文件夹列表,并发现存储的照片、音乐和视频。

库是虚拟的文件夹集合,其中包括一个默认的已知文件夹,以及用户通过使用你的应用或任一内置应用添加到库的任何其他文件夹。 例如,图片库默认包含“图片”已知文件夹。 用户可以通过使用你的应用或内置的“照片”应用,将文件夹添加到图片库或从中删除它们。

var myPictures = await Windows.Storage.StorageLibrary.GetLibraryAsync(Windows.Storage.KnownLibraryId.Pictures);

            Windows.Storage.StorageFolder savePicturesFolder = myPictures.SaveFolder;

            Windows.Storage.StorageFolder newFolder = await myPictures.RequestAddFolderAsync();

 

            QueryOptions queryOption = new QueryOptions

                (CommonFileQuery.OrderByTitle, new string[] { ".mp3", ".mp4", ".wma" });

 

            queryOption.FolderDepth = FolderDepth.Deep;

 

            Queue<IStorageFolder> folders = new Queue<IStorageFolder>();

 

            var files = await KnownFolders.MusicLibrary.CreateFileQueryWithOptions

              (queryOption).GetFilesAsync();

写了上面的这些语句就可以实现了在库里选择文件的功能。

 

https://blog.csdn.net/u011033906/article/details/65447199

这里讲里文件和打开库。

技术分享图片

 

 

 

 

三.下载

我实现的这个下载功能,我真心是弄了好久。我找了好多的资料,我就找怎么下载,就看到了这个网页

https://blog.csdn.net/lindexi_gd/article/details/53425673

但是这个网页讲的是下载图片的,但是我想应该会是一样的吧,就看里一下,但是最后还是放弃了,网上的大部分都是以图片的下载为例子的,我真的是搞不懂了,所以就找了同学问问,他是怎么做的,他给我说去以前看的个的微软的网址上看

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

然后我就这个网页里说了一步步做下来,就是可以找到了本地的图片和音频等,我就把他放到了我的功能二----本地选择。

但是看到最后,使用流方法向媒体库添加文件,但我还是不会,不怎么弄,又在网上各种乱搜,找到了https://www.cnblogs.com/T-ARF/p/5886153.html

但是这里的代码我用到我的里就是有错,我就把代码放到网上搜一搜是怎么用的,我又看了

https://msdn.microsoft.com/zh-cn/library/system.net.http.httpclient.aspx

这里介绍了HttpClient()的用法。

代码里

public async Task<StorageFile> Load()

        {

            try

 

            {

                var httpClient = new Windows.Web.Http.HttpClient();

                var buffer = await httpClient.GetBufferAsync(new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3"));

                if (buffer != null && buffer.Length > 0u)

                {

                    var file = await KnownFolders.MusicLibrary.CreateFileAsync("neusong.mp3", CreationCollisionOption.ReplaceExisting);

                    using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))

                    {

                        await stream.WriteAsync(buffer);

                        await stream.FlushAsync();

                    }

                    return file;

                }

            }

            catch { }

            return null;

        }

最后返回了file,应该可以到文件了,我就研究文件

https://blog.csdn.net/u011033906/article/details/65447199

这里讲里文件,最后将缓存的文件播放出来。将neusong.mp3下载到音乐文件夹

 

在使用MediaElement的时候有问题,我就看了

 

https://msdn.microsoft.com/zh-tw/library/windows/apps/mt187272.aspx

 

通过调用SetSource方法来找播放源。

 技术分享图片

 

在下载的这个功能里,我真的费了很久的时间,与同学交流的很多菜搞懂了下载的这个过程。也试了

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

这个网址里讲的后台下载,但是也是有点难懂,没有成功。

 

 

 

uwp----播放器2

标签:mod   page   存储   orderby   zh-cn   nop   loader   决定   flush   

原文地址:https://www.cnblogs.com/xxl-xxl/p/8836704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!