学习 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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
目录
相关文章
|
关系型数据库 MySQL 数据库
深入MySQL数据库进阶实战:性能优化、高可用性与安全性
深入MySQL数据库进阶实战:性能优化、高可用性与安全性
818 0
|
SQL 算法 Java
数据库系列课程(08)-SpringBoot整合Sharding-Jdbc
数据库系列课程(08)-SpringBoot整合Sharding-Jdbc
466 0
|
2月前
|
人工智能 数据可视化 算法
CrewAI与LangGraph:下一代智能体编排平台深度测评
在过去的一年里,我深度研究了多种智能体编排平台的技术演进,见证了从单一智能体应用向多智能体协作系统的转变。随着大语言模型能力的不断提升,**智能体编排(Agent Orchestration)**已成为构建复杂AI系统的核心技术。在众多新兴框架中,CrewAI以其直观的团队协作模式和LangGraph以其强大的状态图编排能力,代表了两种截然不同的技术路径。 CrewAI采用**代码优先(Code-First)的编排方式,将智能体建模为具有特定角色和目标的团队成员;而LangGraph则提供可视化编排(Visual Orchestration)**能力,通过状态图来管理复杂的工作流程。这两种平台
282 0
CrewAI与LangGraph:下一代智能体编排平台深度测评
ly~
|
11月前
|
消息中间件 存储 监控
如何查看 RocketMQ 消息的重试次数和时间间隔?
RocketMQ消息重试次数和时间间隔可通过查看消费者和Broker日志、使用管理控制台的监控页面和消息查询功能,或通过分析消费者代码和RocketMQ客户端库代码等方式获取。日志中常有消费失败重试的明确记录,控制台可监控消费情况推断重试状态,代码分析则适合技术用户深入了解。
ly~
940 3
|
9月前
|
数据采集 人工智能 移动开发
盘点人工智能在医疗诊断领域的应用
人工智能在医疗诊断领域的应用广泛,包括医学影像诊断、疾病预测与风险评估、病理诊断、药物研发、医疗机器人、远程医疗诊断和智能辅助诊断系统等。这些应用提高了诊断的准确性和效率,改善了患者的治疗效果和生活质量。然而,数据质量和安全性、AI系统的透明度等问题仍需关注和解决。
984 10
|
11月前
|
存储 算法 中间件
每日 3000万订单的社区电商要如何分库分表
文章首先介绍了分库分表的基本概念,包括分库、分表及其组合形式,并详细解释了水平切分、垂直切分和混合切分的方式。接着分析了分库分表的原因,如解决性能瓶颈、微服务化需求等。文章还讨论了分库分表的常见问题,如调试难度、分布式事务和跨库查询等,并介绍了分库分表工具的客户端模式和代理模式。最后,通过一个社区电商的真实案例,详细展示了分库分表的具体落地过程,包括评估库表总数、选择分库分表字段等关键步骤。
379 5
|
Ubuntu
Ubuntu22.04,AOSP编译报错: libncurses.so.5: cannot open shared object file: No such file
本文描述了在Ubuntu 22.04系统上编译AOSP时遇到的`libncurses.so.5`缺失错误,并提供了通过安装相应库解决该问题的步骤。
2178 0
|
机器学习/深度学习 传感器 物联网
使用Python实现深度学习模型:智能物联网与智能家居
【8月更文挑战第13天】 使用Python实现深度学习模型:智能物联网与智能家居
381 2
|
Java 应用服务中间件 Maven
SpringBoot(六)之内嵌容器
需要用哪个容器,就把其他两个容器注释掉。(
158 0
|
Java 编译器 API
Java中的注解:原理与实战
Java中的注解:原理与实战

热门文章

最新文章