UWP学习(二)--5 Features and Implementations in YouTube
App-to-app
app-to-app几乎可以说在绝大多数移动应用上都存在。尤其活跃在社交软件中。
Share data
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/app-to-app/share-data
Share data包含的共享数据类型有纯文本、统一资源标识符、HTML、格式化文本、位图、文档、开发者自定义的数据。
在YouTube里,当你看到一个有意思或者对别人来说可能特别重要的视频时,你可以点击分享,分享到你其他的社交软件账号上。如下图:
这样,YouTube便可以与twitter、微信、facebook等Apps互动,实现app-to- app的分享。
如图。在其他应用copy的视频链接,paste到YouTube搜索框内,可直接搜到相应视频。Copy&Paste间接地实现了app-to-app的信息交流。
Devices, sensors, and power
Orientation Sensor(方向传感器)
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/use-the-orientation-sensor
如果你打开了设备的方向传感器,在YouTube内播放视频时,方向传感器可以感知设备方向,进行界面的横竖自动调整。
Audio video, and camera
Camera-Dispaly the camera preview
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/simple-camera-preview-access
在YouTube点击了上传视频按钮时,或询问打开照相机的权限。权限正常开启后,应用会启动相机预览功能,在未开始录像之前,用户能通过相机预览到当前场景。如下图:
Media playback-Media items, playlists, and tracks
YouTube是全球最大的一款视频网站。关于video相关的特性自然是最多。最基本的播放项目、列表和曲目是不可或缺的。
同时Youtube存储海量的视频资源和用户的账户相关信息(用户列表、收藏、喜欢),数据库的支持是必不可少的。YouTube采用的是开源数据库MySql。除此之外,我们还可以考虑使用SQLite和微软的SQL Server。
SQLite相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/data-access/sqlite-databases
SQL Server相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/data-access/sql-server-databases
Media playback-Custom video effects
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/custom-video-effects
在上传自己的视频时,YouTube携带了简单的视频剪切编辑工具,还增加了视频风格自定义功能。
Media playback-Import media from a device
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/import-media-from-a-device
如图:YouTube可以扫描本地文件库,自动筛选出视频文件,支持用户从本地设备导入视频上传。
Networking and web services
作为一款联网应用(且是全球的超级流量大户),YouTube的网络及web服务无处不在。没有最多,只有更多。
Sockets
https://docs.microsoft.com/en-us/windows/uwp/networking/sockets
Sockets服务无处不在。当你在搜索框搜索视频时,客户端(Client)通过传输控制协议Socket与远程的YouTube服务器端(Server)通信。期间要协定好socket类型、流量控制、端口号等基本服务。
WebSockets
https://docs.microsoft.com/en-us/windows/uwp/networking/websocketsWebSocket
与Sockets不同的是,WebSockets应用层的协议。自然在YouTube内也是无处不在。当你播放一个视频的时候,websockets服务使YouTube服务器与客户端不间断地进行视频信息传输,这项服务必不可少。
Background transfers
https://docs.microsoft.com/en-us/windows/uwp/networking/background-transfers
在Youtube下载/上传较长的视频时,可能会用到后台转移服务,使得下载/上传不中断。
Launching, resuming, and background tasks
Launch resume-suspend an app(挂起)
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/suspend-an-app
Launch resume-resume an app(恢复)
相关实现文档:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/resume-an-app
当视频播放暂停,回到home。若还有正在上传或者下载视频的任务,软件会在后台继续运行。这整个过程涉及到了应用的挂起、恢复、后台运行。
打开应用,可以从上次停止地方接着播放: