学习 DLNA-阿里云开发者社区

开发者社区> 开发与运维> 正文

学习 DLNA

简介: 先科普一下 DLNA,Digital Living Network Alliance,数字生活网络联盟。既然是 network 那么至少在同一个网络内,也就是一般意义上的局域网。

先科普一下

DLNA,Digital Living Network Alliance,数字生活网络联盟。既然是 network 那么至少在同一个网络内,也就是一般意义上的局域网。而且 DLNA 至少还需要一个 DMS 端和一个 DMP 端。

  • DMS,Digital Media Server,服务端,例如手机、平板、音响等
  • DMP,Digital Media Player,可以搜索局域网内所有由 DMS 提供的内容,例如机顶盒
  • DMC,Digital Media Controller,可以控制 DMS 或 DMP,例如手机本身也是 DMC,它控制机顶盒从平板那里获取内容进行播放
  • DMR,Digital Render

DLNA 实际场景
通过 DLNA 协议,你可以方便地把手机里播放的视频投射到家里的电脑上或者智能电视上。目前很多软件都有这个功能了,如果你购买了 Android 智能电视或者某些电视盒子,就可以电视或者盒子中安装类似 PPTV/搜狐 TV 这样的视频软件,然后在 PC 机的视频播放器或者手机播放视频的界面中,选择投射到电视或者盒子上即可。

UPnP

DLNA 标准包括多项协议及标准,其中最重要的部分是 UPnP,Universal Plug and Play,它主要用于实现智能设备的互联互通,它定义了局域网内的设备如何互相发现对方,如何提供服务,如何控制对方等一系列的过程。

UPnP 文档:
- UPnP协议编程实践 http://blog.csdn.net/lancees/article/details/8132719
- 推荐:http://blog.csdn.net/bao_jinyu/article/category/1149905
- 开源实现 https://github.com/geniusgithub

UPnP SDK
- Platinum SDK
- CyberGarage
- Cling

Platinum SDK
编译:
- http://blog.csdn.net/lancees/article/details/8951679
- http://blog.csdn.net/lancees/article/details/9865411
- http://blog.csdn.net/lancees/article/details/9178385
- iOS:http://blog.csdn.net/u013756604/article/details/53590680
- 比较详尽:http://ios.jobbole.com/84764/

CyberGarage:
- http://blog.csdn.net/lancees/article/details/8477513
- http://luochao0913.blog.163.com/blog/static/6409386120133104208719/

Cling
1. NanoHTTPD 是一个微型的 Web 服务器,开源地址:http://elonen.iki.fi/code/nanohttpd/
2. DLNA 工具包采用的是.cling

其实有了上面两个开源项目,解决起来就很容易!
1. 首先,暴露服务AndroidUpnpService,且绑定服务;
2. 然后,构建本地媒体服务器,实现Service(PS:采用cling,DMS只需要实现ContentDirectoryService即可)
3. 再次,把本地的媒体文件,全部构建进Web服务器; 最后,实现一些必要的监听,如设备发现等等

其他方案

Miracast、AirPlay

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章