SuperAPI AI 工具集

camera-streaming

智能体与模型

查看项目

更新于 10-15 21:40

技能介绍

用途:在 Android 上通过 DeviceSession 与已附加的 Camera,经 camera.stream 接收视频帧并抓拍照片。随流传输的 PCM 音频请使用 audio-streaming 技能。

主要能力:DeviceSession 管理设备连接生命周期,由 Wearables.createSession(...) 创建;Camera 通过 session.addCamera(...) 附加到会话;Stream 经 camera.stream 访问;StreamConfiguration 配置视频质量、帧率与压缩;PhotoData 表示串流期间抓拍的静态图像。分辨率选项:VideoQuality.HIGH 为 720 x 1280,MEDIUM 为 504 x 896,LOW 为 360 x 640。帧率有效值为 2、7、15、24、30 FPS。较低分辨率与帧率通常能在蓝牙上获得更好的单帧画质。

使用方式:DeviceSession.start() 是即发即忘,返回 Unit,连接在后台完成;只有会话报告 DeviceSessionState.STARTED 后才能添加能力,紧接 start() 调用 addCamera(...) 会以 DeviceSessionError.SESSION_IDLE 失败,应在会话状态收集器中添加相机。启动串流前用 Wearables.checkPermissionStatus(Permission.CAMERA) 检查权限。通过 camera.stream.state 观察 StreamState 转换:STOPPED -> STARTING -> STARTED -> STREAMING -> STOPPING -> STOPPED,终止后为 CLOSED;设备暂停(如单次轻触)时报告 PAUSED,可自行恢复。同时观察 camera.stream.errorStream:StreamError.STREAM_ERROR 为提示性、不停止串流,CRITICAL_STREAM_ERROR 表示应拆除串流。用 camera.stream.videoStream 接收帧;默认 SDK 在手机上解码,VideoFrame.buffer 为 YUV 像素数据,设置 StreamConfiguration(compressVideo = true) 可接收压缩 HEVC 缓冲,此时检查 frame.isCompressed 与 frame.isCodecConfig 并交给自有解码器。

抓拍:capturePhoto() 仅在串流活动时成功,返回 PhotoData 密封类型,需按变体分支(Bitmap 或 HEIC)。同一时间只能有一个抓拍进行中,并发第二次调用会以 CaptureError.CaptureInProgress 失败。若需独立的高质量拍摄(含分辨率、质量、传输进度与独立生命周期),请使用 camera-capture 技能。

清理:不再需要相机数据时调用 camera.stop(),设备交互结束后再 session.stop();停止相机会级联停止其串流,停止会话会级联停止所有已附加能力。Camera.stop() 与 Stream.stop() 会使实例失效、无法重启;需调用 session.removeCamera() 分离能力,之后同一会话的 session.addCamera(...) 才能成功。

限制:资料未提供收费、价格、平台范围等更多信息。