在移动设备上实现 DLNA/UPnP (Win7 Play To)

Posted

技术标签:

【中文标题】在移动设备上实现 DLNA/UPnP (Win7 Play To)【英文标题】:Implementing DLNA/UPnP (Win7 Play To) on a mobile device 【发布时间】:2010-12-13 12:01:15 【问题描述】:

对于一个学期的项目,我的想法是实现 Windows 7 的 Play 到基础架构,以使用手机作为端点(播放器)或将内容从手机流式传输到 Windows 7 机器。有人有使用此 API 的经验吗?这是否能够在几周内完成(原型,只是概念验证,没有最终用户准备好)还是对于这个范围的项目来说太多了?注意:我不是在寻找代码示例,只是对这个项目的可行性进行评估。如果您有任何来自 MS 或其他方面的文档,那将是很棒的,尽管不是问题的症结。

编辑:我发现 Windows 7 Play-to 功能基于 DLNA,任何支持 DLNA 的设备(我认为)都可以用作 Play-To 上下文菜单的目的地。但是,我很难在 DLNA 上找到任何类型的文档。我想知道您是否需要成为 DNLA 的成员才能真正访问规范?或者,我知道 DLNA 是基于 UPnP 构建的,它不会完全按照我的意愿行事,但这将是朝着正确方向迈出的一步,所以,修改我的问题 是否有人知道任何开源 C/可以帮助我实现 UPnP 或 DLNA 的 C++ 或 Java(首选)库?

谢谢! 克里斯

【问题讨论】:

【参考方案1】:

PlayTo 完全基于 UPnP。 DLNA 只是 UPnP 之上的一层标准化。因此,任何 UPnP 设备都能够与 DLNA 设备通信,从而与 Win7 机器通信。 DLNA 指定了 4 种类型的设备:DMP、DMR、DMC 和 DMS。 DMP(又名数字媒体播放器)是一种能够查找和浏览远程服务器(DMS=数字媒体服务器)并消费内容(或提取内容)的设备。 PS3 是 DMP 的完美例子。 DMP 在网络上是不可发现的,它只是发现和消费内容。因为它是不可发现的,所以您无法使用 PlayTo 控制它。 DMR(又名数字媒体渲染器)是一种可以接受从网络接收到的命令的设备。它是可发现的,公开 UPnP 描述文档和 UPnP 服务,如 AVTransport 和 ConnectionManager 或 RenderingControl。 PlayTo 设备能够在网络上找到该设备,并且可以向其推送内容。它可以通过 AVTransport 服务和 RenderingControl 服务来控制播放。 今天的许多设备要么是 100% DMP(不能通过 PlayTo 控制)要么是 DMP-DMR。这意味着它们既公开了 AVTransport 和 RenderingControl 服务,也有一个 GUI,用户可以使用它从服务器中提取媒体。 DMS(又名数字媒体服务器)是一种媒体服务器设备。您可以在其中存储媒体内容,然后可以从其他网络设备使用它。这些通常是 NAS 设备,但也可能是手机、Win7/Vista 机器等。DMS 在网络上是可发现的,并将 UPnP 服务公开为 ContentDirectory 服务。这会将方法公开为 Browse 和 Search,您可以使用它们来定位内容。 DMC 设备(又名数字媒体控制器)是没有播放功能的设备。它只有控制能力,需要一个远程DMS(公开内容)和一个远程DMR(播放内容)来完成媒体体验。 PlayTo 就是一个例子。诺基亚 N95/诺基亚 N78 手机或 iPhone 上也有类似的应用程序。 Twonky 也有一个基于网络的 DMC。

所有这些设备都有一个共同点:它们理解和使用 UPnP。它们可以用 C+、C#、Java 实现,它们可以在 Windows、Linux 或 Apple 平台上运行,但它们都是基于 UPnP 的。因此,您需要做的就是熟悉 UPnP 标准。我建议从 upnp.org 和 Intel Device Spy(以及其他相关的 Intel UPnP 工具)下载论文并开始使用它们。 如果你想编写一个 DMC(或 PlayTo)——这是最简单的事情——你只需要了解一些基本的 UPnP 概念(SOAP、XML、网络发现等)。如果您想在 Win7 平台上编写您的应用程序,您可能需要使用 Win UPnP API 来发现设备并向它们发送命令。或者您可以为此编写自己的 API(这并不难)。我不知道在电话上你可以使用什么 API。但是,您总是可以使用基本的:使用基本的网络 API 通过网络发送 SOAP 消息。 对于 DMP/DMR,您将需要播放功能,这可能取决于平台和您拥有的编解码器。

如果这有助于您入门,请告诉我。 谢谢 卡藏

【讨论】:

以上是关于在移动设备上实现 DLNA/UPnP (Win7 Play To)的主要内容,如果未能解决你的问题,请参考以下文章

干货 | 移动设备上实现“诗人也能用TensorFlow”

Forsta推出Digital Diaries移动应用,在桌面智能手机和平板电脑设备上实现无缝的消费者旅程和消费者画像捕捉

Javascript:DLNA 客户端

onMouseWheel在移动设备上的触摸行为-three.js

有人使用 XMPP 在 iOS 上实现推送通知吗?

怎么在QGraphicsView上实现鼠标移动事件