我正在iOS上开发应用程序。
我尝试连接Sony Camera Remote API,但找不到合适的设备描述文件。所以我不能使用API。
我尝试连接以下步骤:
通过WiFi将mac连接到相机:
Open my camera menu ——> Wifi ——> Send to Smartphone ——>
Select on Smartphone ——> connect mac to camera over access point
使用SSDP发现相机
Use the UdpRequest provided by sony to send ssdp-discovery message.
Then the message send successfully.
Then I received the follow message:
CFSocket receiveData response = NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=1800
LOCATION: http://192.168.122.1:64321/DmsDesc.xml
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: UPnP/1.0 SonyImagingDevice/1.0
USN: uuid:00000000-0000-0010-8000-a408ea87692a::upnp:rootdevice
X-AV-Physical-Unit-Info: pa=""; pl=;
X-AV-Server-Info: av=5.0; hn=""; cn="Sony Corporation";
mn="SonyImagingDevice"; mv="1.0";
In the Development Guide, the response should seems like this:
HTTP/1.1 200 OK
LOCATION: http://192.168.122.1:64321/dd.xml
CACHE-CONTROL: max-age=1800
EXT:
SERVER: OS/version UPnP/1.0 product/version ST: urn:schemas-sony-com:service:ScalarWebAPI:1
我使用dd.xml
预占DmsDesc.xml Main part of DmsDesc.xml:
DMS-1.50
urn:schemas-upnp-org:device:MediaServer:1
ILCE-7M2
Sony Corporation
http://www.sony.com/
SonyDigitalMediaServer
SonyImagingDevice
http://www.sony.net/
uuid:00000000-0000-0010-8000-a408ea87692a
urn:schemas-upnp-org:service:ContentDirectory:1
urn:upnp-org:serviceId:ContentDirectory
/CdsDesc.xml
/upnp/control/ContentDirectory
/upnp/event/ContentDirectory
urn:schemas-upnp-org:service:ConnectionManager:1
urn:upnp-org:serviceId:ConnectionManager
/CmsDesc.xml
/upnp/control/ConnectionManager
/upnp/event/ConnectionManager
urn:schemas-sony-com:service:DigitalImaging:1
urn:schemas-sony-com:serviceId:DigitalImaging
/DigitalImagingDesc.xml
/upnp/control/DigitalImaging
dd.xml应该是这样的:
<av:X_ScalarWebAPI_DeviceInfo xmlns:av="urn:schemas-sony-com:av">
<av:X_ScalarWebAPI_Version>1.0</av:X_ScalarWebAPI_Version>
<av:X_ScalarWebAPI_ServiceList>
<av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>guide</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
</av:X_ScalarWebAPI_Service> <av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>camera</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL> </av:X_ScalarWebAPI_Service>
</av:X_ScalarWebAPI_ServiceList></av:X_ScalarWebAPI_DeviceInfo>
我的问题是:
如何获取正确的设备描述文件。
如何连接Sony Camera Remote API,演示将是完美的。
如果索尼工程师可以看到我的问题,请更新官方演示。它太旧了。
答案 0 :(得分:4)
我自己找到了答案。
要连接索尼相机远程API,我们必须将相机设置为caccess点。
有两种方法可以做到这一点。
当智能手机通过第一种方式连接到相机时,响应就像我的问题中提到的那样。
当智能手机通过第二种方式连接到相机时,响应主要部分位于下方。它与开发指南相同:
<av:X_ScalarWebAPI_DeviceInfo xmlns:av="urn:schemas-sony-com:av">
<av:X_ScalarWebAPI_Version>1.0</av:X_ScalarWebAPI_Version>
<av:X_ScalarWebAPI_ServiceList>
<av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>guide</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
<av:X_ScalarWebAPI_AccessType/>
</av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>accessControl</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
<av:X_ScalarWebAPI_AccessType/>
</av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>camera</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
<av:X_ScalarWebAPI_AccessType/>
</av:X_ScalarWebAPI_Service>
</av:X_ScalarWebAPI_ServiceList>
</av:X_ScalarWebAPI_DeviceInfo>
答案 1 :(得分:0)
我的问题是使用示例api app而不先签名。