Streaming 如何下载/传输使用UPnP找到的文件?
我对UPnP作为一种协议是完全陌生的,但我希望用它将文件从索尼相机传输到我正在开发的iOS应用程序。到目前为止,我已经有了SSDP发现设置,我可以阅读UPnP客户端的服务,搜索文件夹和访问文件名,但我遇到的最后一个障碍是,一旦我能够列出文件,如何实际下载/传输它们 我最终得到的结果如下:Streaming 如何下载/传输使用UPnP找到的文件?,streaming,media,upnp,dlna,Streaming,Media,Upnp,Dlna,我对UPnP作为一种协议是完全陌生的,但我希望用它将文件从索尼相机传输到我正在开发的iOS应用程序。到目前为止,我已经有了SSDP发现设置,我可以阅读UPnP客户端的服务,搜索文件夹和访问文件名,但我遇到的最后一个障碍是,一旦我能够列出文件,如何实际下载/传输它们 我最终得到的结果如下: <item id="04_02_0624600856_000001_000001_000000" restricted="1" parentID="03_01_0624600856_000001_0000
<item id="04_02_0624600856_000001_000001_000000" restricted="1" parentID="03_01_0624600856_000001_000000_000000">
<dc:title>DSC05076.ARW</dc:title>
<upnp:class>object.item.imageItem.photo</upnp:class>
<dc:date>2018-08-23T12:24:21</dc:date>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1">http://192.168.122.1:60151/SM_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fSM%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_CI=1">http://192.168.122.1:60151/LRG_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fLRG%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1">http://192.168.122.1:60151/TN_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fTN%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
DSC05076.ARW
object.item.imageItem.photo
2018-08-23T12:24:21
http://192.168.122.1:60151/SM_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fSM%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21
http://192.168.122.1:60151/LRG_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fLRG%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21
http://192.168.122.1:60151/TN_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fTN%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21
我(凭借我对简单HTTP API的天真体验)希望能够通过点击以下按钮下载相关文件:
http://192.168.122.1:60151/SM_DSC05076.ARW
或类似内容(我假设我必须稍微更改此URL,因为文件列为image/jpeg
而不是RAW
无论我尝试什么组合,包括完整的res
对象、剪切位、解码url e.t.c。当我尝试访问相关url时,总是会得到404响应。我需要在这里做些更复杂的事情吗?还是缺少一些简单的事情
提前感谢!这里的问题是我使用了上一个会话中的url。结果表明,url在连接会话之间会发生变化,这就是为什么我得到了404
经验教训:UPnP是高度动态的,您不能依赖于在其访问MRL下缓存图像!您尝试过完整的
http://192.168.122.1:60151/LRG_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fLRG%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21
?我没有w、 原来我只是个白痴!我假设URL没有改变,所以使用了上一个会话中的URL。结果他们确实改变了!