Know your weapons Ⅱ
本次内容主要讲述使用UWP相关技术可以实现的软件上的一些功能,这里以Netease-Cloud Music(下称Cloud Music)为例讲述,这款音乐软件我个人一直在用,毕竟人们生活离不开音乐,说起来稍微顺手一些。
1.Cloud Music的音频播放功能----
作为一个主流音乐播放软件,这可以说是个最基本的功能了,直接上图:


这里可以使用Audio,video,and camera 中的技术实现:
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/
从第二张图里可以看到Cloud Music同样可以实现视频播放的功能,使用的同样是Audio,video,and camera 节点下的一些技术。
2.Cloud Music的音乐分享功能----
网络社交已成大部分人主要的交流和展现自我的方式之后“分享”就变得尤为重要,一个好的音乐软件必然也不会缺少这一环:

诸如此类的数据分享功能可以通过App-to-app communitcation中的相关技术实现:
https://docs.microsoft.com/en-us/windows/uwp/app-to-app/
应用程序中支持Share contract(共享协议),可以在应用程序之间快速的共享数据——App-to-app communitcation中的Share data节点
当用户调用共享时,系统显示可能的目标应用程序列表。为了出现在列表中,您的应用需要声明它支持Share contract。这让系统知道您的应用程序可用于接收内容——App-to-app communitcation中的Receive data节点
3.Cloud Music支持本地音乐的扫描,播放和上传----
我一开始觉得这个功能其实有些鸡肋,毕竟现在从来都是从音乐商店下歌来听没多少人需要扫描本地音乐这一步了,不过一些因为地区问题或者版权问题无法在Cloud Music上获得的一些音乐,从某些默默无闻无私奉献的网站上下载到本地之后这个功能还是很有价值的:


这个功能可以通过Audio,video,and camera 下的Import media from a device节点中的功能实现:
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/import-media-from-a-device
该技术可实现从设备导入媒体,包括搜索可用媒体源,导入视频,音频和照片等文件,并从源设备中删除导入的文件。
4.Cloud Music的每日推荐!----
这个功能我个人是很喜欢的(虽然我听的曲子有点偏),不仅是每日推荐,它推荐歌单等内容也会根据你过去的播放历史通过分析来想你推荐相同风格的音乐(有些相似音乐或许也是你曾经听过或下载过的音乐):(因为用手机听音乐偏多,下面的展示用手机截图代替)

以上功能可以通过Machine Learning中的技术实现:
https://docs.microsoft.com/en-us/windows/uwp/machine-learning/
机器学习(ML)允许计算机使用现有数据来预测预期的结果和行为。通过处理先前收集的数据,ML算法建立的模型可以在输入新输入时预测正确的输出。让我来介绍机器学习这个技术我的能力还是非常不够的,但是感觉这个很高大上啊,所以就想着一定要提一下。机器学习确实给我们们的生活带来了极大的便利,也给马云爸爸送去了好多钱。
5.Cloud Music的账户和联系人----
这个我感觉没什么多说的,现在基本上所有的软件都需要用户创建独立的账户添加联系人:


以上功能可以通过Contacts, My People, and calendar 中的相关技术实现:
https://docs.microsoft.com/en-us/windows/uwp/contacts-and-calendar/
其实我还想写一个听歌识曲的功能但是我在UWP中没有找到相关技术节点,本以为是在Devices, sensors, and power中的某一项但是还是找不到匹配的内容。后再我在某度上搜索后发现:

所以以上就是我这次分享的全部内容,谢谢观看!
Know your weapons Ⅱ的更多相关文章
- what is archeage honor weapons?
in my opinion,there are many kinds of weapons in archeage online, those include basic weapons and ma ...
- codechef [snackdown2017 Onsite Final] Fusing Weapons
传送门 题目描述 大厨最近迷上了一款勇者斗恶龙的游戏. 游戏每局开始前,会有 N 件武器摆成一圈.每件武器有一个整数的等级.大厨可以选择两件 相邻的等级相同(不妨设同为 A 级)的武器,将它们合成.这 ...
- 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》
---------------------------------------------------------------------------------------------------- ...
- Unity 最佳实践
转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips- ...
- 在Unity环境下使用抽象和接口
http://gamasutra.com/blogs/VictorBarcelo/20131217/207204/Using_abstractions_and_interfaces_with_Unit ...
- Ninject学习(一) - Dependency Injection By Hand
大体上是把官网上的翻译下而已. http://www.ninject.90iogjkdcrorg/wiki.html Dependency Injection By Hand So what's Ni ...
- Tips for newbie to read source code
This post is first posted on my WeChat public account: GeekArtT Reading source code is always one bi ...
- Ignite安装配置——上篇
Ignite介绍 Ignite 是SolarWinds公司开发的一款数据库性能监控.性能分析并提供优化解决方案的性能检测分析工具,Ignite配置简单.方便:它会收集实时会话数据.服务器资源使用情况, ...
- Protecting against XML Entity Expansion attacks
https://blogs.msdn.microsoft.com/tomholl/2009/05/21/protecting-against-xml-entity-expansion-attacks/ ...
随机推荐
- Java中的Calendar方法
/** * @Title:JavaDate.java * @Package:com.yhd.chart.model * @Description:Java中的Calendar总结 * @author: ...
- ROM型启动方式概述
ROM 型启动方式概述 所有的VxWorks 内核映像类型中,只有VxWorks 类型使用的bootrom 引导程序进行启动,此时VxWorks 内核映像放置在主机端,由目标板bootrom 完成Vx ...
- freemarker中的if...elseif...else语句(七)
freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...
- Flutter 初尝:从 Java 无缝过渡
准备阶段 下载 Flutter SDK 新建 Flutter 文件夹,克隆 Flutter SDK: git clone -b beta https://github.com/flutter/flut ...
- Python 第二天学习(文件的处理)
学习的内容是: python的文件处理 列表,元组,字典的使用 集合的使用 函数 文件file.textd的内容 A person with high EQ doesn't often critici ...
- JVM内存分析
1.java内存模型分析 java虚拟机运行时数据存储区域包括线程隔离和线程共享两类,整个PC的内存图如下所示: 下面对以上内存区域说明: 1.1 register和cache 当代计算机一般有多个c ...
- 浏览器之window对象--javascript
window对象代表打开的浏览器窗口,是Web浏览器所有内容的主容器.window对象是整个对象链条结构的最高层,是其他对象的父对象,在调用window对象的方法和属性时,可以省略window对象的引 ...
- python数据类型——列表和元组类型
列表类型(list) 定义一个列表类型很简单: l = ['a','b','c','d','e','f'] 变量l即为列表类型,可以用type方法查看: print(type(l)) 列表的增删改查 ...
- ASP.NET Core 一步步搭建个人网站(7)_Linux系统移植
摘要 考虑我们为什么要选择.NET Core? 因为它面向的是高性能服务器开发,抛却了 AspNet 的臃肿组件,非常轻量,加上微软的跨平台战略,对 Docker 的亲和性,对于开发人员也非常友好,所 ...
- 如何使用mysqldump备份数据库
一.背景 在开发项目中,数据库是核心资产.除了做主备冗余增加可靠性外,定期备份数据也是必须的. 使用mysqldump备份数据具有操作简单,备份和恢复时间短的优点(mysqldump备份数据生成的是批 ...