dlna投屏html源码,DLNA(一)

本文介绍DLNA投屏的底层原理,包括寻址、发现、描述和控制过程,并详细讲解如何通过iOS实现网络及本地媒体文件投屏到电视盒子,以电信悦ME盒子为例进行实践操作。
摘要由CSDN通过智能技术生成

导读:

本文集主要讲的是,dlna的投屏底层的原理,以及一步步的教你实现,对网络图片/视频或者本地的图片/视频的投屏到电视盒子上面(demo里面用的是电信的悦me盒子)

PS由于第一次接触投屏,我只讲我自己的理解,以及自己项目里面的所使用的功能模块,如有理解不到位的,可以一起交流学习下。🐶🐶🐶

主要参考:

说明:

对于投屏功能,本文主要是利用的iOS DLNA投屏功能了解一下,里的框架,感谢作者的源码。

我是根据作者的代码,新增了一些实际需要的方法,以及实现了可讲本地图片、视频投影到盒子上面。

具体的代码见gitHubDemo里面的具体的包括实现都有具体的实现

我们从upnp中文文档,可大致可得出下面的流程

1.寻址

2.发现

3.描述

4.控制、事件、展示

下面我结合悦me盒子来做具体的描述

1.寻址:设备通过寻址来获得一个网络地址 (具体的说明见upnp中文文档)

这是设备和路由完成的

2.发现

当设备已经有自己的ip地址(步骤1),那么怎么样才能获取到设备呢?

我们可以通过udp请求,来喊话

发现设备:搜索请求消息字符串

NSData * sendData = [[self getSearchString] dataUsingEncoding:NSUTF8StringEncoding];

[_udpSocket sendData:sendData toHost:ssdpAddres port:ssdpPort withTimeout:-1 tag:1];

其中:getSearchString为:

[NSString stringWithFormat:

@"M-SEARCH * HTTP/1.1\r\nHOST: %@:%d\r\nMAN: \"ssdp:discover\"\r\nMX: 3\r\nST: %@\r\nUSER-AGENT: iOS UPnP/1.1 mccree/1.0\r\n\r\n",

ssdpAddres,

ssdpPort,

serviceType_AVTransport];

-----

ssdpAddres --> @"239.255.255.250";

ssdpPort --> 1900;

serviceType_AVTransport -->@"urn:schemas-upnp-org:service:AVTransport:1";

通过upd来发送消息,此时在同一个局域网的设备,会收到该消息,然后返回自己的设备信息,下面是悦me盒子返回的示例

HTTP/1.1 200 OK

Location: http://192.168.124.43:1266/

Cache-Control: max-age=1800

Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.2

EXT:

USN: uuid:skyworth&208B3756FFED&192.168.124.43::urn:schemas-upnp-org:service:AVTransport:1

ST: urn:schemas-upnp-org:service:AVTransport:1

Date: Thu, 24 Jan 2019 02:38:18 GMT

3.描述 我们发现了设备,看第2步只会返回一些基本的信息,我们还需要去获取设备的详细的信息

我们通过向步骤2拿到的location发送get请求

get:http://192.168.124.43:1266/

返回信息如下:

{type:1 name:root xml:"

1

0

urn:schemas-upnp-org:device:MediaRenderer:1

YuemeTV

GeniusGitHub

https://github.com/geniusgithub

GeniusGitHub AV Media Renderer D

DLNA投屏是一种流媒体技术,它允许用户将音频、视频和照片从一个设备传输到另一个设备进行播放。它基于DLNA(数字生活网络联盟)的标准协议,可实现设备之间的互通和互操作性。 DLNA投屏的demo演示了如何使用DLNA技术进行多媒体投屏。首先,我们需要有一个DLNA兼容的播放设备(如智能电视、音响系统等)作为投放目标。然后,我们需要一个DLNA服务器或媒体播放器(如手机、电脑等)作为源设备。 在demo中,源设备上的DLNA服务会扫描设备上的媒体文件,并将其展示在一个可选择的列表中。用户可以选择想要投放的视频、音频或照片。一旦选择完毕,源设备会发送一个投屏指令给目标设备,请求播放所选的媒体文件。 目标设备接收到指令后,会通过DLNA协议进行与源设备的通信,获取所需的媒体文件,并开始播放。在这个过程中,目标设备可以根据需要进行格式转换或解码操作,以确保所播放的媒体文件与设备兼容。 DLNA投屏的demo展示了如何实现设备间的无缝连接和媒体共享。通过DLNA技术,我们可以享受无线投屏的便利,将媒体文件从一个设备传输到另一个设备实现更好的观影、听歌或观看照片的体验。 总之,DLNA投屏demo演示了DLNA技术的应用场景和工作原理,展示了设备间的互通和互操作性。它使我们能够轻松地在不同设备之间进行媒体共享和投屏,丰富了我们的数字生活体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值