docs: document setPlayMode API with bind-first precondition
This commit is contained in:
29
README.md
29
README.md
@@ -107,6 +107,28 @@ sdk.unbind(userId: "user-id") { result in /* ... */ }
|
||||
sdk.deleteFile(key: "file-key") { result in /* ... */ }
|
||||
```
|
||||
|
||||
#### 播放模式(Play Mode)
|
||||
|
||||
> ⚠️ **前置条件 — 必须先绑定。** `setPlayMode` 复用 `BIND_DEVICE` (0x0F) 命令通道,固件设计上要求设备先和该 `userId` 完成 `bind`(即 SDK `isActivated == true`)才能切播放模式。SDK 在客户端做了守卫:未绑定时直接 fail,不会发命令。请在 UI 上禁用切换按钮,直到 `didChangeActivation(true)` 回调到达。
|
||||
|
||||
```swift
|
||||
// 0 = 单播(播完一次停)/ 1 = 循环播放
|
||||
sdk.setPlayMode(.loop, userId: "user-id") { result in
|
||||
switch result {
|
||||
case .success:
|
||||
// 成功后 SDK 自动刷新 deviceInfo,
|
||||
// 通过 didUpdateDeviceInfo 回调拿到最新 info.loop
|
||||
break
|
||||
case .failure(let error):
|
||||
print("setPlayMode failed: \(error)")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**注意事项:**
|
||||
- `bind` / `unbind` / `setPlayMode` 共享 `0x0F` / `0x12` 响应通道,**不要并发调用**
|
||||
- 旧固件可能不支持 `loop` 字段 —— 此时 `DeviceInfo.loop` 为 `nil`,调用 `setPlayMode` 设备可能回 `success=0`
|
||||
|
||||
### 文件传输
|
||||
|
||||
```swift
|
||||
@@ -174,6 +196,12 @@ public struct FirmwareInfo {
|
||||
let status: String? // DRAFT / PUBLISHED
|
||||
}
|
||||
|
||||
// PlayMode — 播放模式
|
||||
public enum PlayMode: Int {
|
||||
case single = 0 // 单播
|
||||
case loop = 1 // 循环播放
|
||||
}
|
||||
|
||||
// DeviceInfo — getDeviceInfo 返回
|
||||
public struct DeviceInfo {
|
||||
let name: String // 设备名
|
||||
@@ -182,6 +210,7 @@ public struct DeviceInfo {
|
||||
let powerlevel: Int // 电量百分比
|
||||
let allspace: UInt64 // 总存储(字节)
|
||||
let freespace: UInt64 // 可用存储(字节)
|
||||
let loop: PlayMode? // 播放模式(旧固件无此字段时为 nil)
|
||||
}
|
||||
|
||||
// BindingResponse — bind 返回
|
||||
|
||||
Reference in New Issue
Block a user