Joyce45  

由于上次做的播放器实在是有点丑,加之这期间学习了许多关于页面排版的东西,这次做第二次作业就重新来了一遍“换汤不换药”的操作。其实刚开始看到的作业要求的时候,有点傻眼猫咪,但是做到现在这个程度,本人也是有点成就感的,从“听懂许多”到“会做一些”,从“参考文档”到“扩展一点”,受益良多。

GitHub某页:https://github.com/Joyce45/hwtII/tree/master/hwtII

 


 

本次作业相关:

1、实现在线播放东北大学校歌

上次做本地播放是通过一些官方文档获得灵感,但这次搜索了一些官方文档(例如:https://msdn.microsoft.com/en-us/library/windows/apps/mt187272.aspx),都并没有获得非常直接的相关知识,甚至连上次存在的问题(1.播放MP3格式的文件时,没有进度栏,无论我加不加AreTransportControlsEnabled="True"或者在哪儿加。2.播放MP3时没有图片,整个界面干巴巴。)都没能帮我解决。绝望的我回去作业首页看了看同(da)学(lao)们的解决方案,非常有参考意义,原来这么容易。

1 <Button    Name="playbutton" 
2                       Content ="网络来源" 
3                       FontSize="24" >        

插入一个样式与学习能力成正比的Button,然后为它添加一个Click事件。

1  private void Button_Click3(object sender, RoutedEventArgs e)
2         {
3             mediaPlayer.Source = new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3");
4         }

第一个要求达标还不算特别难,但是失败总是不会来的很慢。

 

2、在线播放并下载

询问过做完的同学后,更加迷茫,但总归是他们告诉我的HttpClient这个东西的,回到官方文档搜索关于HttpClient的相关知识(https://docs.microsoft.com/zh-cn/windows/uwp/networking/httpclient)给我讲协议?讲请求过程?好好好,我问问别人。然后得知了一些大佬们的解决方案(https://docs.microsoft.com/en-us/uwp/api/Windows.Web.Http.HttpClient)&(https://docs.microsoft.com/en-us/uwp/api/windows.web.http.httpmethod.method

 

 1 System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Linq;
 5 using System.Runtime.InteropServices.WindowsRuntime;
 6 using System.Threading.Tasks;
 7 using Windows.Foundation;
 8 using Windows.Foundation.Collections;
 9 using Windows.Storage;
10 using Windows.Storage.Pickers;
11 using Windows.UI.Xaml;
12 using Windows.UI.Xaml.Controls;
13 using Windows.UI.Xaml.Controls.Primitives;
14 using Windows.UI.Xaml.Data;
15 using Windows.UI.Xaml.Input;
16 using Windows.UI.Xaml.Media;
17 using Windows.UI.Xaml.Navigation;
18 using Windows.Web.Http;
19 
20 public async Task<StorageFile> Download()
21         {
22             try
23             {
24                 var httpClient = new HttpClient();
25                 var buffer = await httpClient.GetBufferAsync(new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3"));
26                 var file = await KnownFolders.MusicLibrary.CreateFileAsync("neusong.mp3", CreationCollisionOption.ReplaceExisting);
27                 using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
28                 {
29                     await stream.WriteAsync(buffer);
30 
31                     await stream.FlushAsync();
32                 }
33                 mediaPlayer.Source = new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3");
34                 return file;
35             }
36             catch { }
37             return null;
38         }

看到这里我以为离成功只有一步之遥了,结果,这一步跨的那么远。

 

首先,因为没有和文档同步变更头文件,百般修改,终于不报错了,但是下载不了的问题又出现了,好,在文档的大海里翻腾,然后(https://docs.microsoft.com/zh-cn/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-libraries

 

这下算好了吧,见证奇迹的时刻。

没错,真的好使了。

 


 

与本次作业无关:

其实也没什么,就是我终于做出了一个简单的NavigationView!让本次的界面和上次的作业形成鲜明的对比。NavigationView简直是我学到目前最喜欢的控件没有之一,完毕。

突然觉得其实UWP是个蛮容易学的东西,如果能够好好利用文档和各类资料的话(而且不懒)。如果下次口语考官问到我除了group work外其他跟写作业相关的心路历程的话,我还是可以继续和他聊UWP的,痛苦并快乐系列。

posted on 2018-04-15 22:33  Joyce45  阅读(194)  评论(0)    收藏  举报