花椒直播推流SDK接入文档

花椒直播推流SDK / @hj-live/hjpusher / 1.0.13

适用 SDK:@hj-live/hjpusher 1.0.13 更新日期:2026-06-09

一、文档目的

本文档用于指导 HarmonyOS 应用接入 花椒直播推流SDK,并说明涉及视频信息、音频信息和人脸信息的 API 调用时机、关闭方式和合规注意事项。

二、工程信息和权限

项目内容
SDK名称花椒直播推流SDK
SDK包名@hj-live/hjpusher
SDK版本1.0.13
SDK类型按 T/GIIC0005—2025 附录A划分:实时音视频类
SDK形态HarmonyOS HAR 包
开发者北京密境和风科技有限公司
声明权限ohos.permission.CAMERA、ohos.permission.MICROPHONE、ohos.permission.INTERNET
联系方式kefu@huajiao.tv,400-6768-666
HAR 文件hjpusher.har
HAR SHA-256733db472ea7201c961b54d7f343e2f03154f0bfbed1b6ccc7223e6562f156cfe

三、标准接入流程

1. 在应用隐私政策及第三方 SDK 清单中披露 SDK 名称、提供方、版本、包名、主要功能和个人信息处理规则。

2. 用户同意应用隐私政策后,可调用 HJPusher.contextInit(true, logDir, logLevel, logMode, maxSize, maxFiles) 初始化日志与上下文。

3. 用户主动点击预览或直播后,申请 CAMERA/MICROPHONE 权限;权限被拒绝时不调用 openPreview/openPusher。

4. 创建 HJPusher 实例并 createPusher;构造 PreviewInfo 后 openPreview 获取 NativeImage surfaceId;将 surfaceId 绑定到 CameraKit PreviewOutput;再通过 XComponent setWindow 绑定预览画面。

5. 用户点击开始直播后,构造 PusherConfig 和 MediaStateInfo 并调用 openPusher;停止时按 closePusher、释放 CameraKit、closePreview、destroyPusher 顺序释放。

四、核心 API 与合规注意事项

API调用阶段处理信息/功能合规要点
HJPusher.contextInit(valid, logDir, logLevel, logMode, maxSize, maxFiles)进程初始化配置日志与上下文,不触发摄像头/麦克风采集。隐私政策同意后调用,避免在日志中写入敏感信息。
openPreview / closePreview预览前/预览结束创建 NativeImage surface 并接收摄像头视频信息。CAMERA 授权后调用;停止时 closePreview 并释放相机。
openPusher / closePusher开始/停止直播按接入方配置 URL 传输音视频信息。完成权限授权和推流告知后调用。
openRecorder / closeRecorder扩展功能将音视频内容录制到接入方指定路径。用户主动开启后调用;接入方负责保存期限和清理。
openSpeechRecognizer / closeSpeechRecognizer扩展功能回调音频数据 ArrayBuffer。属于音频信息可选处理,应单独告知用途并提供关闭入口。
HJFaceDetectMgr.openFaceDetect / closeFaceDetect扩展功能端侧人脸检测,产生人脸框、角度、置信度、关键点信息。人脸信息为可选个人信息,建议单独同意;关闭时 closeFaceDetect 并 nativeSourceClose。
openFaceu/closeFaceu、setFaceProtected(false)、nodeEnable(false)扩展功能FaceU、人脸保护和图节点效果控制。依赖人脸检测时需显著提示;关闭后不再使用人脸结果。

五、可选扩展功能接入示例

能力开启示例关闭示例
本地录制hjPusher.openRecorder({ recordUrl })hjPusher.closeRecorder()
PNG 序列/礼物叠加hjPusher.openPngSeq(url); hjPusher.setGiftPusher(true)hjPusher.setGiftPusher(false)
双屏推流hjPusher.setDoubleScreen(true)hjPusher.setDoubleScreen(false)
静音hjPusher.setMute(false)hjPusher.setMute(true)
语音数据获取hjPusher.openSpeechRecognizer(cb)hjPusher.closeSpeechRecognizer()
人脸检测faceDetectMgr.openFaceDetect()faceDetectMgr.closeFaceDetect(); hjPusher.nativeSourceClose()
FaceU/图节点hjPusher.openFaceu(url) 或 nodeEnable(..., true, ...)hjPusher.closeFaceu() 或 nodeEnable(..., false, ...)
人脸保护hjPusher.setFaceProtected(true)hjPusher.setFaceProtected(false)
RTE 图节点控制nodeCreate/nodeConnect/nodeSetParam/nodeEnablenodeEnable(false)/nodeDisconnect/nodeDelete

六、发布和排查要点

发布前应核对 module.json5 中 CAMERA、MICROPHONE、INTERNET 权限,应用隐私政策和 SDK 下载页中的版本、包名、HAR SHA-256 与实际送检包一致。排查预览黑屏时优先检查 CAMERA 授权、openPreview 返回的 surfaceId、CameraKit 绑定和 setWindow 节点信息。