看文章前,我们需要知道的几个概念:
1、Wifi Direct技术;
2、Wifi Display技术;
3、Miracast标准;
安卓手机用户都知道我们的安卓手机有一个wifi直连功能,在点击设置–》WIFI–》更多Wifi设置–》Wifi直连; 目前的重点就是Wifi 直连(Wifi direct),它是干什么的呢?对于它的功能,我们开发者很快的期望可以有一个Wifi Direct演示Demo,大家可以通过下载Demo进行运行操作。
我们也可以先去谷歌开发者文档里面查一下Wifi相关的Api。 通过演示上面的Demo我们发现Wifi direct技术原理是底层实现了Scoket链接,它是可以替代蓝牙传输的技术实现,传输效率快蓝牙传输100倍,但是也有缺点就是功耗高(耗电)。 有些资深安卓用户应该知道Wifi 直连可以实现安卓手机和大屏设备之间的投屏操作,比如目前华为的Mate book笔记本,就可以通过NFC功能,直接把手机屏幕投屏到笔记本屏幕上。
在没有实现手机和大屏设备链接到同一个网络的情况下,是如何实现无线传输的呢?
下面我们就来介绍Wifi display技术,我们发现Wifi display技术是需要设备之间遵循Wifi 联盟组织制定的Miracast标准,该标准制定了投屏协议,一般遵循手机端作为source端,大屏设备作为sink端,简单一句话:就是标准定义了:只能通过手机投屏到大屏设备(前提还需要大屏设备也支持Miracast标准)。
推荐博客:WLAN direct (WLAN直连)如何使用?,通过Wifi直连可以将电视机与同时支持“DLNA推送控制器”功能的Wi-Fi Direct/Wi-Fi兼容设备(例如智能手机、PC)直接连接。设备上的照片/音乐/视频等内容可以在电视机上播放。不需要无线路由器(或访问点)即可使用此功能。
:Wi-Fi Display
手机如何使用wifi display链接电视的博客推荐:手机连接电视WiFidisplay
安卓如何实现播放端:Android投屏Sink端实现研究
通过以上的技术调研我们可以得出以下几个结论:
1、Wifi dircet无法实现视频预览功能,因为视频预览需要符合C/S架构,基于互联网协议。
2、Wifi direct是用来替换蓝牙传输的技术方案,它的实现原理是底层建立了Socket链接,这也是它比蓝牙传输功耗更高的原因(耗电高);
3、手机和大屏设备间的投屏实现原理是设备间基于wifi直连技术,同时设备必须支持Wifi 联盟组织Miracast标准;安卓手机默认有source端的api,只是没有暴露出来给开发者,这也是我们在Google开发者文档看不到的原因,我们如果想要调用,需要通过反射的方式(有技术实现难度,而且各个手机厂商的api有可能被定制化了)。
以上就是我们得到的结论,那么如果我们还是想实现投屏怎么办呢?
推荐博客:有哪些投屏SDK可以选择?
博客主要罗列了以下三种第三方SDK实现设备间投屏的实现:
1、必捷互联(推荐)
2、幕享SDK
3、乐播投屏