8

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

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

谢谢!克里斯

4

1 回答 1

32

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,您将需要播放功能,这可能取决于平台和您拥有的编解码器。

让我知道这是否有助于您入门。谢谢CCazang

于 2009-11-10T01:05:34.793 回答