标签: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)
这个网页就讲了您可以访问作为应用程序包一部分提供的应用程序文件中的文件资源,也可以将其作为组件或框架包的一部分包含在应用程序数据或网络中。
二.本地选择
这个网页里是将现有的音乐、图片和视频文件夹添加到相应的库。 你还可以从库中删除文件夹、获取库中的文件夹列表,并发现存储的照片、音乐和视频。
库是虚拟的文件夹集合,其中包括一个默认的已知文件夹,以及用户通过使用你的应用或任一内置应用添加到库的任何其他文件夹。 例如,图片库默认包含“图片”已知文件夹。 用户可以通过使用你的应用或内置的“照片”应用,将文件夹添加到图片库或从中删除它们。
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
这个网址里讲的后台下载,但是也是有点难懂,没有成功。
标签:mod page 存储 orderby zh-cn nop loader 决定 flush
原文地址:https://www.cnblogs.com/xxl-xxl/p/8836704.html