手机与电视,是陪伴在咱们生活最多见,陪伴最长久的智能设备。迅猛发展的移动终端与通讯技术,赋予了手机更广阔多元的应用生态,大屏电视则以大视野和震撼影音,弥补了手里方寸带来的视觉局限。而今,手机的延伸需求愈来愈突出,无线投屏也正逐渐成为观看移动终端内容的主流方式之一,并在影音娱乐、远程教育、在线办公等方面扮演不可或缺的角色。算法
经过接入华为终端分布式技术Cast+ Kit,能够实现以华为手机为中心,以Cast+镜像投屏、Cast+流媒体投屏为载体,完成从手机小屏到高清大屏的柔滑转换,为用户带来大屏观影、大屏阅读和游戏自带8倍镜的全新感觉。网络
话很少说,咱们直接进入一星期教你快速集成华为Cast+ Kit的实战演练环节。跟着下方攻略便可轻松完成开发。数据结构
首先,接口调用过程一图了解——分布式
简单来讲开发接入大体能够分为六个流程,首先须要进行变量声明并获取PlayerClient实例;而后在应用启动时,获取PlayerClient实例,启动服务,注册监听;三要进行投屏业务相关内容设置,包括投屏属性设置、鉴权模式信息设置和可被周边设备发现的相关设置;四则是设置投屏显示Surface,这里须要注意的是应用层面,要求保证投屏过程当中不能录屏、截屏、录音,要求SurfaceView要设置FLAG_SECURE;最后的两步则是与投屏相关的内容,也就是启动投屏、暂停投屏和断开链接的的执行。
集成开发全攻略——函数
- 首先建立一个应用工程,在AndroidManifest中添加所须要的权限
- 在lib目录下添加SDK的aar文件,并在应用级的build.gradle里面加上SDK的依赖。
- 初始化相关服务和实例
注册回调函数:post
在IeventListener的onEvent中,sink端(设备)会上报各类消息,包括初始化服务、收到对端设备发来的链接请求、鉴权成功等;onDisplayEvent是手机端的回调,displayinfo是手机侧的信息gradle
- 在初始化成功后,构建大屏投屏能力。设置其显示分辨率、显示帧数、开启被发现、配置低时延策略等等。
- 移动端PIN码输入正确或密码输入正确或非首次非密码模式投屏,会上报EVENT_ID_CONNECT_REQ消息,该消息下会携带请求链接移动端设备的ProjectionDevice信息。
- 首次PIN码模式会上报EVENT_ID_PIN_CODE_SHOW消息,PIN码可从dislayinfo.getPinCode()得到。
- EVENT_ID_CONNECT_REQ消息后,顺序上报EVENT_ID_DEVICE_CONNECTED和EVENT_ID_PAUSED消息。PAUSED消息下大屏端能够设置Surface并开始播放投屏视频流,前提是必须保证Surface有效而且收到PAUSED后才开始投屏操做,以避免因设备缘由出现黑屏问题。
集成完成啦,咱们来感觉下黑科技华为Cast+加强投屏技术带来的新体验吧。 首先华为Cast+Kit采用系统级链接入口,操做简单,在下拉菜单中选择“无线投屏”,点击相应设备后就能够完成投屏。
那么投屏效果如何呢?在市面上总体无线投屏时延基本在200ms左右的环境下,华为Cast+Kit拥有多项自研技术,可实现50ms的投屏超低时,保障了大型手机游戏的手眼合一。
*数据来自华为实验室,不一样网络环境下投屏时延存在差别 关于华为 Cast+Kit更多开发详情,包括业务介绍、开发指南、接入准备、SDK如何获取等,戳如下空降连接: https://developer.华为.com/consumer/cn/cast-kitui
往期连接:别让算法和数据结构拖你职业生涯的后腿cdn
原做者:普拉斯视频