教你如何开发一个完败Miracast的投屏新功能

  手机与电视,是陪伴在咱们生活最多见,陪伴最长久的智能设备。迅猛发展的移动终端与通讯技术,赋予了手机更广阔多元的应用生态,大屏电视则以大视野和震撼影音,弥补了手里方寸带来的视觉局限。而今,手机的延伸需求愈来愈突出,无线投屏也正逐渐成为观看移动终端内容的主流方式之一,并在影音娱乐、远程教育、在线办公等方面扮演不可或缺的角色。算法

  经过接入华为终端分布式技术Cast+ Kit,能够实现以华为手机为中心,以Cast+镜像投屏、Cast+流媒体投屏为载体,完成从手机小屏到高清大屏的柔滑转换,为用户带来大屏观影、大屏阅读和游戏自带8倍镜的全新感觉。网络

  话很少说,咱们直接进入一星期教你快速集成华为Cast+ Kit的实战演练环节。跟着下方攻略便可轻松完成开发。数据结构

首先,接口调用过程一图了解——分布式

更详细的流程步骤拆解,请前往开发者联盟-Cast+Kit开发指南
  简单来讲开发接入大体能够分为六个流程,首先须要进行变量声明并获取PlayerClient实例;而后在应用启动时,获取PlayerClient实例,启动服务,注册监听;三要进行投屏业务相关内容设置,包括投屏属性设置、鉴权模式信息设置和可被周边设备发现的相关设置;四则是设置投屏显示Surface,这里须要注意的是应用层面,要求保证投屏过程当中不能录屏、截屏、录音,要求SurfaceView要设置FLAG_SECURE;最后的两步则是与投屏相关的内容,也就是启动投屏、暂停投屏和断开链接的的执行。

集成开发全攻略——函数

  1. 首先建立一个应用工程,在AndroidManifest中添加所须要的权限

在这里插入图片描述

  1. 在lib目录下添加SDK的aar文件,并在应用级的build.gradle里面加上SDK的依赖。

在这里插入图片描述

  1. 初始化相关服务和实例

在这里插入图片描述

注册回调函数:post

  在IeventListener的onEvent中,sink端(设备)会上报各类消息,包括初始化服务、收到对端设备发来的链接请求、鉴权成功等;onDisplayEvent是手机端的回调,displayinfo是手机侧的信息gradle

在这里插入图片描述

  1. 在初始化成功后,构建大屏投屏能力。设置其显示分辨率、显示帧数、开启被发现、配置低时延策略等等。

在这里插入图片描述

在这里插入图片描述

  1. 移动端PIN码输入正确或密码输入正确或非首次非密码模式投屏,会上报EVENT_ID_CONNECT_REQ消息,该消息下会携带请求链接移动端设备的ProjectionDevice信息。

在这里插入图片描述

  1. 首次PIN码模式会上报EVENT_ID_PIN_CODE_SHOW消息,PIN码可从dislayinfo.getPinCode()得到。

在这里插入图片描述

  1. 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

原做者:普拉斯视频

相关文章
相关标签/搜索