UWP 学习笔记 二
Uwp学习笔记 二
今天结合一款移动端的uwp应用分析一下uwp的一些硬件相关功能。因为有幸买过一部微软的lumia phone,lumia950(其实是二手的,但是当年刚出来的时候还是非常惊艳的).发现微软总是喜欢将产品的一些配置弄的很好,而对一些地方则漠不关心(也许只是单纯不在意手机这个平台?)当年的lumia1020 就配备了出色的4100万光学变焦的卡尔蔡司镜头,一直到最后一部lumia950xl也是2000万的像素,还有出色的2k AMOLED屏幕,可是就是摄像头的地方没有1020做的漂亮,还有就是上面还有15年的时候十分少见的虹膜识别和液冷技术,对就是液冷,没想到微软会将它用到一部手机上吧。只可惜看来微软的手机之路也就在这里完结,SurfacePhone看起来是遥遥无期了。
比之手机,微软的其它产品似乎十分畅销,比如Surface和Xbox,以至于windows10的操作系统设置周都有相关设置项。当然不论是Surface还是Xbox(其实我觉得SurfaceBook比起Surface要好许多)都是非常昂贵的…….
下来进入正题,今天介绍这款叫PerfectTube的第三方YouTube客户端。
首先,这是它一进去的界面显示的是本地视频,这是因为我没有登录账号,因为YouTube是IPv6的,这也是当初买这个手机的原因(有时候ppi太高也不是什么好事)如果联网的话,界面是这样的
它会转换为你的关注。
这个功能应该是网页的爬取(虽然说实话,这种带加密的网页模拟登录是真的麻烦,就像qq邮箱,尼玛好几道工序加密密码,又是MD5又是RSA,在它那个js文件里,3000多行,反正我是没办法)
这就是msdn的文档HttpClient
https://docs.microsoft.com/en-us/windows/uwp/networking/httpclient
但是好像爬网页的话也可以用WebRequest和WebRespond(忘了是不是这两个类)但都是通过填写Http头部,然后自己填一份登录信息表单来提交。当然,这个程序我感觉可能不是这种方式,要是有像wpf中的WebBrowser那样的控件,然后在自定义一下模板感觉比较方便(当然只是猜想,因为我也没有用过WebBrowser控件)
点开一个视频后是这样的
你可以通过右上角的那个下箭头来下载(或者按他的说法Preload——缓存)
下面是这个视频的介绍,从中你可以看出,即使有着一道墙,也是阻止不了国人的。
这个技术嘛,我想可能和
https://docs.microsoft.com/en-us/windows/uwp/networking/background-transfers
有一些关系,不过对于其如下的描述我确实不能苟同。
既然是一款视频客户端,最重要的应该还是有关视频播放和挂起的功能,也许是外国人的习惯与我们有些不同,在这款应用中,你在一个视频播放页面点击返回后,这个视频会以小窗口播放,你可以浏览你想看的其他视频
就像这样,但是你一旦点击另一个视频,他就会立即开始播放那个视频(可是有时候真的只是为了点进去看清楚封面啊!)而bilibili的安卓客户端则与之相反,在一个播放的视频中你不能返回,只能在这页的链接中去寻找别的视频,当然点进去看封面也是无所谓的。
下来就是视频播放的页面,look
(看起来横屏舒服多了!)
上面一行是清晰度,界面很简单,但不失美观。如果在这里的话,这个方法一定有用
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/transcode-media-files
视屏的编/转码,非常坑的是格式支持真的少的一批
(上图是Pr的格式输出,虽然和这种软件比起来有些欺负它)但没错,少的一批,就是FLV都不支持。
当然,这个播放器有一些莫名奇妙的功能,比如,它对一些视频支持后台播放,而一些则是随着屏幕的关闭而停止,别以为安卓播放器轻易能做到的东西uwp也会做到,也许它能做到,但是它有时却不会,就像这款播放器,如果你不选上面的“audio”纯音轨输出选项,他就不会后台播放。
也许我该建议开发者去看看这个?
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/process-media-files-in-the-background
当然了,我没有这么自大,毕竟uwp平台的开发者都是宝贝一样的,得罪了他们,我以后还用什么应用啊。
UWP应用的后台问题好像是个通病,怎么说呢就像UWP版的网易云音乐,和桌面版相比,最讨厌的就是在你单击“close“时,它不会提供隐藏到托盘这个选项,为什么呢,因为跨平台啊,不过如果为了追求Windows桌面应用的极致的话WPF是不错的选择,而且估计在学完这门课程后,大家看到WPF就会呵呵了。
最后一个功能呢,并不是这个程序自带的,而是WindowsPhone的快捷键功能:屏幕抓取(其实就是截屏了Screencapture)
他的判定我感觉比我的另一部小米好很多,因为在这个操作时从来没有误触发别的东西,不像小米的那个,一下子菜单就出来了,把重要的东西挡了一半…难受。
这个功能嘛,怕是用到了这个
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/screen-capture
从它引用的名空间中可以看出,它和media没有什么关系,而是和graphics有着莫大关系,说起graphics可是没有少折磨过我。以前在JavaSwing中使用自定义控件继承基础控件或者直接继承Component时,没有少用Graphics2D手绘控件,为什么呢,因为网上说GDI绘制的控件“轻“,效率会高一些。然而最后还是惨不忍睹,就用Swing和WPF的代表作来看
没错就是这两款编译器,VS的顺畅比起Idea还是高出一截的(网上说idea是swing的界面)但是IDEA的代码补全是我见过最棒的,在它里面编完一个程序有可能连一个方法的全名都记不住……
OK That’s all!
UWP 学习笔记 二相关推荐
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- Java学习笔记二:数据类型
Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...
- 吴恩达《机器学习》学习笔记二——单变量线性回归
吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...
- ASP.NET MVC 2 学习笔记二: 表单的灵活提交
ASP.NET MVC 2 学习笔记二: 表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
最新文章
- TOML-to-Go : 帮你快速生成 Go 结构体
- python二十七:从最内部的循环直接跳出来
- Linux定时备份数据到百度云盘
- python opencv实现目标区域裁剪
- C++递增运算符重载
- react动画库_React 2020动画库
- [ubuntu] ubuntu20.04 卸载 firefox 下载 chrome
- tmp name php,linux环境 上传文件失败 tmp_name为空
- Hibernate getById方法 could not initialize proxy - no session
- 修改app的名字和图标
- 单片机|CC2530实验入门
- 北漂生活第十四弹-5.24 兜兜转转又是一周
- ubuntu 18.04.1安装RTL8821CE无线网卡驱动
- 基于python实现FFT和DWT记录
- 诺维信和科汉森合并获股东批准,将共同创建一家世界一流的发酵公司
- Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto
- 使用Calibre转换任意格式为支持KF8的mobi文件
- 小米10至尊纪念版和Redmi K30至尊纪念版的区别 哪个好
- 服务器的固态硬盘使用raid非ssd,在VMware ESXi中使用固态硬盘的注意事项
- Vue使用Echarts实现广西地图(旧版)
热门文章
- 整理了25个Python文本处理案例,收藏!
- 计算机考研英语一历年国家线,历年考研英语国家线
- 户外LED透明屏与室内透明屏区别,选型号建议
- 网络调试助手连接远程服务器
- 网站被微信浏览器拦截怎么办 微信屏蔽网址打开如何解决
- 我的世界服务器无限血,我的世界生物血量无限指令 | 手游网游页游攻略大全
- “刀片嗓”“水泥鼻”“咳出肺”可以这样缓解!
- 一个点击率10万+的恶搞程序送给大家!
- excel计数连续负数(正数)
- 4个团队领导必备的技能和素质