前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sony Camera Remote SDK API解读.1

Sony Camera Remote SDK API解读.1

作者头像
云深无际
发布2022-06-15 16:14:01
1.4K0
发布2022-06-15 16:14:01
举报
文章被收录于专栏:云深之无迹

使用Sony相机最快乐的一点就是开放SDK,所以让相机用作工业用途有了可以实现的软件基础,但是我C++写的太恶心了,只能先看API的参考,对SDK有大致的了解后,开始编写App。

最后就是我小相机了

一般是搭配嵌入式的平台一起,ESP32估计是没有戏了

注意要先准备好设备的回调函数,相当于一个后台的线程来管理相机和主机的连接状态。而且这个回调函数也会调用别的回调函数,完成提醒等工作。

连接过程是异步的,这个图的左边的线是,用户的线程,中间这个线是SDK的API,右边是SDK和相机内部的线程。

这个远程识别的常数是300,是固定的

这个是初始化的函数,init方法里面的0参数是固定的

这个是释放资源,气死我了后面括号没有成对!!!

在相机断开连接以后执行这个函数是正确的

枚举设别到的相机

返回的info函数里面包含了有的相机的列表,GetCameraObjectInfo这个函数是会反映相机的详细信息。最后不用的时候释放资源。

看下面这个连接的函数,第一个参数是要连接的相机对象,就是上文检测到的函数对象。接着参数是一个回调函数,用来通知SDK的通信事件,第三个参数是控制远程模式的。

具体使用的时候是这样的

SDK连接状态的变化

连接多个相机时候,每一个handle都可以控制一个相机

这个可能看的更清晰一些

上面是连接,下面是控制

获得相机属性,三参数:第一个是设备的handle,第二个是指向属性的指针,第三个是这个属性列表的大小。

成功接收的属性列表:

都在此处保存

这个函数可以改变相机的属性,而且这个函数不是同步的调用,执行后是送入发送队列的。

属性不会因为状态而改变,SDK也不通知你干啥,所以应该延时读取属性,然后读取状态,进行页面状态更新,也就是说,这个过程需要开发者自己处理。

代码语言:javascript
复制
 SDK::SendCommand(m_device_handle, SDK::CrCommandId::CrCommandId_Release, SDK::CrCommandParam_Down);

命令的发送方法

按下和松开

一个简单的demo

索引的命令ID,第一个是盛开,第二个是影片录制,取消对焦,媒体格式,媒体快速格式,取消内容传输等。

这个发送函数的优先级很高,所以我个人建议是经常的使用。

实时的获取试图,这个可能是一个很重要的事情

函数在这里

不解释了,Mac截图麻烦死了,后面是得到预览的图像信息

一个图像是一个类封装的,也有帧的大小,内部有图像大小

内部也简单的对数据类型进行了重构,32和64

这个是一个数据块的获取,Data回来的是一个数据指针,Size是一个数据的大小

一个小的demo,线获取一帧,得到数据内存的大小,接着把它复制过来。

传输的时候每一帧都会给一个增量的数字,用来判断要不要复制缓冲区,一看数字,复制过,就可以不工作了。

这个函数可以选择保存的位置

更改的保存路径

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档