Cling2.0库基于DLNA实现android电视接收端

DLNA

是一个实现数字生活网络解决方案,DLNA标准包括多项协议及标准,其中最重要的部分是UPnP协来议实现设备的发现和控制

UPnP协议栈

UPnP设备体系结构包含了设备之间、控制点之间、设备和控制点之间的通信。完整的UPnP由设备寻址、设备发现、设备描述、设备控制、事件通知等。

UPnP工作流程

1.寻址阶段是 UPnP 工作流程中的基础,在 IPv4 的环境中,每台设备或每个控制点在同一网关下分配独立的IP地址

2.发现阶段,当开放了 UPnP 服务的设备加入网络后,该设备将以组播的方式,向网络中的控制点通知自己以及服务的存在

其中多播地址239.255.255.250端口1900,

NTS: ssdp:alive表示通知设备在线,于此相关发送byebye设备离线

Cache-Control: max-age=16  如果设备一直没有收到byebye,当max-age超出时为更新状态也会主动离线

投屏端rootdevice会注册设备并创建一些对应的服务

3.搜索阶段

当新的端点设备加入时,可主动通过SEARCH来查询已经注册的设备和对应的服务列表,选中设备后就可以获取到投屏设备的路径,uid于对应注册的服务


4.端点控制和事件

当控制点获取到设备及其注册的服务的详细信息后,就可以通过发送相应指令SOAP控制包文

由此控制点实时获取投屏设备的状态,控制播放设备的声音,播放内容,进度条等等

5.投屏展示

以腾讯视频为例,手机端点投射时会发出播放地址,和play指令.投屏端在接收到端点请求都会有对应的反馈

于此同时在控制过程中为了同步播放器的状态,端点会实时发送GetTransportInfo来获取播放器实际状态来确保设备在线

具体学习代码怎么写可以参考这个大佬的项目

GitHub - devin1014/DLNA-Cast: 基于Cling库封装的DLNA投屏库,支持DMC、DMS、DMR功能。 (nuaa.cf)

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值