Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Streaming 如何下载/传输使用UPnP找到的文件?_Streaming_Media_Upnp_Dlna - Fatal编程技术网

Streaming 如何下载/传输使用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

我对UPnP作为一种协议是完全陌生的,但我希望用它将文件从索尼相机传输到我正在开发的iOS应用程序。到目前为止,我已经有了SSDP发现设置,我可以阅读UPnP客户端的服务,搜索文件夹和访问文件名,但我遇到的最后一个障碍是,一旦我能够列出文件,如何实际下载/传输它们

我最终得到的结果如下:

<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。结果他们确实改变了!