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

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)们的解决方案,非常有参考意义,原来这么容易。

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

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

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

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

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

 System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Web.Http; public async Task<StorageFile> Download()
{
try
{
var httpClient = new HttpClient();
var buffer = await httpClient.GetBufferAsync(new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3"));
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();
}
mediaPlayer.Source = new Uri("http://www.neu.edu.cn/indexsource/neusong.mp3");
return file;
}
catch { }
return null;
}

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

首先,因为没有和文档同步变更头文件,百般修改,终于不报错了,但是下载不了的问题又出现了,好,在文档的大海里翻腾,然后(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的,痛苦并快乐系列。

Player2.0的更多相关文章

  1. Web 播放声音 — AMR(Audio) 篇

    本文主要介绍 AMR(Aduio) 播放 AMR 格式 Base64码 音频. 1.必备资料 github AMR 开源库 :https://github.com/jpemartins/amr.js用 ...

  2. Web 播放声音 — Flash 篇 (播放 AMR、WAV)

    本文主要介绍 Flash 播放 AMR 格式 Base64码 音频. 在此之前么有接触过 Flash ,接触 AS3 是一头雾水,不过幸好有 TypeScript 和 JavaScript 的基础看起 ...

  3. 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  4. 我的Android进阶之旅------>Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  5. Pascal小游戏 随机函数

    一个被人写滥了的小程序,新手学习,Pascal By Chaobs 初学者可以用它来学习随机函数的运用,当然你完全可以自己写一个随机函数. var   player1,player2:longint; ...

  6. 流媒体知识 wiki

    媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等.最近因为项目的关系,需要理清媒 ...

  7. 【miscellaneous】各种音视频编解码学习详解

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  8. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  9. ZAM 3D 制作简单的3D字幕 流程(二)

    原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...

随机推荐

  1. Winform 中写代码布局中遇到的控件遮盖问题

    在winform中编程时,需要动态向主窗体中增加菜单栏和用户控件,菜单栏需要设置DockStyle为Top ,而设置用户控件的DockStyle为Fill,之后在加载的时候,出现了菜单栏遮盖用户控件的 ...

  2. 用word发布CSDN文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  3. 安卓出现错误: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText

    Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to android.widget.Ed ...

  4. 重写COMBOXEDIT

    一.需求 C#种的下拉框ComboBox不支持下拉复选框列表与下拉树形列表等,系统中需要用到的地方使用了第三方组件,现在需要将第三方组件替换掉. 二.设计 基本思路:重写ComboBox,将原生的下拉 ...

  5. 优化Android Studio/Gradle构建(转)

    参考:http://hm.itheima.com/thread-204217-1-1.html

  6. 第二篇 Flask 中的 Render Redirect HttpResponse

    第二篇 Flask 中的 Render Redirect HttpResponse   1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返 ...

  7. 转载:让Windows Server 2012r2 IIS8 ASP.NET 支持10万并发请求

    由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误. 为了避免这样的错误,我们根据相关文档调整了设置,让服务器从设置上支 ...

  8. 网络赛 I题 Max answer 单调栈+线段树

    题目链接:https://nanti.jisuanke.com/t/38228 题意:在给出的序列里面找一个区间,使区间最小值乘以区间和得到的值最大,输出这个最大值. 思路:我们枚举每一个数字,假设是 ...

  9. centos 7 开机yum

    yum -y install net-tools yum -y install wget

  10. 19-05【icloud】照片备份

    icloud提供了免费的存储空间,5G,超过这个量需要单独购买空间:我用的是50G,每月6元. 如果在mac或者iphone上开启了本地的照片流,则会自动同步到icloud,同时各个设备的客户端(ip ...