我正在尝试将特定媒体流式传输到 dlna/upnp 兼容设备。我已经了解了如何使用 c# 向设备发送命令(例如播放、暂停、停止等)。
所以,我可以在设备上播放媒体。但是,我不清楚我如何告诉设备播放什么媒体。对此有特定的命令吗?
我看到了“SetAVTransportURI”命令,但这需要一个 uri,我只想从我的网络上的共享目录播放视频文件。我如何告诉设备播放哪些媒体?
根据UPnP MediaRenderer规范(它是公开的,请查看www.upnp.org),预计AVTransportfile:
服务仅针对内部协议采用 URI 方案,这在很大程度上未指定且特定于设备(如规范中所述)。换句话说,您只能SetAVTransportURI
使用file:
“CD 上的第一首曲目”或“Tuner station X”之类的内容。如果要远程连接,则必须使用协议http-get,即 URI 方案http:
。设置一个简单的网络服务器来发布您的共享目录应该可以解决问题。
对于 UPnP 的这个隔离部分(即设置单一、已知的媒体 URI、没有浏览和没有像视频名称等元数据),您不需要您的服务器知道任何特殊的 DLNA/UPnP 服务。只要您想拥有比没有更好的用户体验,请查找一些成熟的 UPnP 媒体服务器。也有一些用 C# 编写的。