DLNA。Digital Living Network Alliance的简称。意在解决pc,家电,移动设备在局域网内的多媒体共享(音频。视频,图片)。
说DLNA是多屏互动,太牵强了,专业点来讲,应该是媒体共享技术。
使用DLNA功能须要满足的条件:
设备须要在同一局域网内;
至少须要一个DMS端,一个DMP端。
DLNA的几种产品:
1、DMS, Digital Media Server的缩写。把本设备内的多媒体文件(自己控制须要共享哪些文件)到DLNA服务端,
2、DMP,Digital Media Player的缩写,能够搜索局域网内,全部DMS提供的多媒体内容,并在本设备播放。
3、DMC,Digital MediaController的缩写,作为控制DMP搜索播放DMS的内容。与DMP不同。DMC能够控制局域网内的其它设备的DMS和DMP之间的交互,比方。pad作为DMS。机顶盒做DMP,手机用做DMC,三个设备在同一局域网内,手机能够直接控制让机顶盒播放pad里面共享出来的多媒体。
DMR,Digital Render的缩写,作用:DMP+DMR。
常见的产品规划:机顶盒做为DMP,音响或者手机、pad这些小屏设备作为DMS,手机作为DMC,其实。手机端一般开发DMR。这就是市场上比較常见的DMS + DMR开发。
功能齐全的应用应该囊括这两个功能。
Part 2. 主体:DLNA在android中的开发流程。本文档忽略个别细节,仅仅讲核心的步骤:
1、DLNA是基于UPNP协议的,所以你应该选一个开源的第三方UPnP sdk用DLNA的核心处理。网址是:http://upnp.org/sdcps-and-certification/resources/sdks/C的,有C++的,有Java的,应有尽有,看你习惯用哪门语言开发。。有
2、參照upnp sdk的文档进行对应的核心开发,那些sdk普遍的过程都是编译出一个jni库。
3、使用jni库进行安卓的应用层开发。
4、这里单独讲一下DMP的开发,由于种种原因。DLNA可以传输的视频非常有限并且安卓对视频的处理一直非常受诟病。google的视频处理API MediaPlayr对视频的处理相当的弱。假设你想你的应用对各种视频具有良好的支持,建议一直一个视屏播放器。ffmpeg gstream vlc等等都行。
整个开发过程就是NDK以下的JNI开发,当然,个别SDK除外,有专门java处理的sdk。
以下推荐几个比較好的UPNP sdk:
Cling Platinum Cybergarage(海思用的就是这个sdk)
详细的开发技术都在对应的sdk的开发文档里面。以下是一些比較好的博客:
1、有Platinum的DMS应用层实现教程,jni库没有源代码,能够自己编译:
http://blog.csdn.net/lancees/article/details/9865411
有比較好的UPNP介绍和DLNA的思路开发
http://blog.csdn.net/bao_jinyu/article/category/1149905
开发者必须知道在github上选择好东西
https://github.com/
基于Cling开发的DLNA应用
http://www.it165.net/pro/html/201303/4968.html
5、基于CyberGarage库的dlna开发,海思的DLNA应用是用的此sdk
http://luochao0913.blog.163.com/blog/static/6409386120133104208719/
Part 3. 关于DLNA的其它知识
DLNA。miracast。airplay协议的差别和优缺点以及实现方式的差异
DNLA,是索尼、英特尔、微软等发起。
苹果当时也是DLNA联盟的成员,而后来退出了并自立门户。 DLNA与苹果的AirPlay功能比較类似。协议也大体同样。他们都能够让你手机中的媒体内容投放到电视屏幕里。不同的是手机上的DLNA 并没有类似Apple TV的AirPlay 的镜像功能,也没有Apple TV 所支持的双屏体游戏体验。
眼下DLNA很多其它仅仅是能将手机的照片和视频投送到大屏幕中。
Miracast是由Wi-Fi联盟于2012年所制定。以Wi-Fi直连为基础的无线显示标准。
支持此标准的设备可通过无线方式分享视频画面,比如手机可通过Miracast将影片或照片直接在电视或其它装置。与DLNA不同的是。Miracast 也有类似于AirPlay 的镜像功能,能够将手机中屏幕内容直接投放到高清电视屏幕里。这样你也能够通过电视屏幕来玩游戏了。
因为这一技术比較新。支持这一技术的设备到眼下为止,十分稀少。并且技术不成熟,连小米盒子的Miracast接收到都还在开发中。
AirPlay 是苹果开发的一种无线技术,能够通过WiFi将iPhone 、iPad、iPod touch 等iOS 设备上的包含图片、音频、视频通过无线的方式传输到支持AirPlay 设备。
AirPlay 另一个特殊的功能。这一功能叫AirPlay镜像。配合上Apple TV这以功能能够将iPhone 或者iPad 上的画面无线传输到电视上。也就是说你设备显示的是什么电视屏幕显示就就是什么,而不仅限于图片和视频。所以用这一个功能来玩游戏是很酷的,你能够拿着iPad 来当做方向盘。然后看着大屏玩游戏。另外AirPlay镜像最强大地方是它能够实现双屏游戏,让你的游戏有很多其它的交互。
DLNA协议:仅仅适用于音频、视频、图片推送,将多媒体文件通过无线的方式传送到电视机或投影仪上面。
Miracast协议:是以WIFI直连为基础的无线显示标准。支持此标准的设备可通过无线方式分享视频画面。比如手机可通过Miracast将影片或照片直接在电视或其它装置播放而无需受到连接线缆长度的影响。
Miracast跟Airplay是一样的镜像功能,能够将手机中屏幕内容直接投放到高清电视屏幕里,相同你也能够通过电视屏幕来玩游戏、播放在线视频。
Airplay协议:眼下,苹果的AirPlay 很多其它的仅仅适用于认证过的苹果设备,眼下支持这一技术的主要是苹果自己的设备包含了iPad、iPhone、Apple TV等,此外另一些苹果授权的合作伙伴的设备。如向Pioneer和Sony提供技术授权的音响。
====Dlna协议问题===== http://blog.csdn.net/lancees/article/details/18269109
=====iOS====Dlna=== http://blog.csdn.net/zengconggen/article/details/7943851
版权声明:本文博主原创文章,博客,未经同意不得转载。