–
5.5.1EdsSendCommand
### EdsSendCommand功能说明(Description)
向相机发送控制命令,例如:
- 半按快门
- 全按快门
- 开始 / 停止拍摄
- 开始 / 停止 Live View
函数原型(Syntax)
EdsErrorEdsSendCommand(EdsCameraRef inCameraRef,EdsCameraCommand inCommand,EdsInt32 inParam);参数(Parameters)
inCameraRef
目标相机对象inCommand
相机命令类型(EdsCameraCommand)inParam
命令参数(通常为 0)
常用命令示例(部分)
| 命令 | 说明 |
|---|---|
kEdsCameraCommand_ShutterButton_Halfway | 半按快门 |
kEdsCameraCommand_ShutterButton_Completely | 全按快门 |
kEdsCameraCommand_ShutterButton_OFF | 松开快门 |
kEdsCameraCommand_TakePicture | 拍摄一张照片 |
kEdsCameraCommand_DoEvfAf | Live View 自动对焦 |
🛠 开发实战说明(非原文)
⚠️不要混用两种拍摄方式
- 方式 A:
TakePicture - 方式 B:
ShutterButton_*
👉选一种,用到底
5.5.2 拍摄方式一:TakePicture(推荐)
### 使用 TakePicture 拍摄标准流程
1. 确保 Session 已打开 2. 相机模式支持远程拍摄 3. EdsSendCommand(camera, kEdsCameraCommand_TakePicture, 0) 4. 等待 Object Event(文件创建) 5. 下载文件🛠 开发实战说明(非原文)
✅这是最稳定的方式
不需要处理半按 / 松开
SDK 自动处理内部状态
推荐用于:
- 单拍
- 自动化拍摄
- 工业应用
5.5.3 拍摄方式二:快门按钮模拟(高级)
### 模拟快门按钮(Half / Full)标准流程
1. ShutterButton_Halfway // 半按(测光 / 对焦) 2. (可选)等待对焦完成 3. ShutterButton_Completely // 全按(拍摄) 4. ShutterButton_OFF // 松开示例伪代码
EdsSendCommand(cam,kEdsCameraCommand_ShutterButton_Halfway,0);sleep(200);EdsSendCommand(cam,kEdsCameraCommand_ShutterButton_Completely,0);sleep(100);EdsSendCommand(cam,kEdsCameraCommand_ShutterButton_OFF,0);🛠 开发实战说明(非原文)
⚠️极易踩坑
半按不松:
- 相机状态会卡死
Full 后忘 OFF:
- 后续所有命令失败
不同机型:
- 延时要求不同
👉除非你真的需要对焦控制,否则不要用
5.5.4 连拍(Continuous Shooting)
### 连拍控制连拍通常通过以下方式实现:
1. Halfway 2. Completely(保持) 3. 持续接收文件创建事件 4. OFF(结束连拍)🛠 开发实战说明(非原文)
连拍期间:
- 不要阻塞事件回调
建议:
- 文件下载放到独立线程
否则:
- 会丢照片
- 相机缓存满
5.5.5 拍摄完成事件(Object Event)
### 拍摄完成事件拍摄完成后,相机会通过Object Event通知应用程序:
- 新文件已创建
- 文件可下载
常见事件:
kEdsObjectEvent_DirItemCreatedkEdsObjectEvent_DirItemRequestTransfer
🛠 开发实战说明(非原文)
✅正确模式
在回调中:
- 只记录文件引用
- 或投递到队列
不要在回调里直接下载
5.5.6 视频拍摄控制(简要)
### 视频拍摄控制(简要)部分相机支持通过命令控制视频录制:
| 命令 | 说明 |
|---|---|
kEdsCameraCommand_StartMovieShooting | 开始录像 |
kEdsCameraCommand_EndMovieShooting | 结束录像 |
🛠 开发实战说明(非原文)
视频模式:
- 受机型 / 固件限制很大
开始前请检查:
- 当前拍摄模式
- 存储卡状态
5.5.7 拍摄前的必要检查(Checklist)
### 拍摄前检查清单- Session 已打开 - 相机不在 Direct Transfer 状态 - 存储卡可写 - 电量充足 - 未被其他程序占用