QNCameraVideoTrack
- getTrackID
- getUserID
- getTag
- isAudio
- isVideo
- isMuted
- setMuted
- destroy
- sendSEI[1/4]
- sendSEI[2/4]
- sendSEI[3/4]
- sendSEI[4/4]
- setVideoEncoderConfig
- setVideoFrameListener
- play
- startCapture
- stopCapture
- switchCamera
- turnLightOn
- turnLightOff
- manualFocus
- setExposureCompensation
- getMaxExposureCompensation
- getMinExposureCompensation
- setZoom
- getZooms
- setMirror
- setPreviewEnabled
- setBeauty
- pushImage
- setWaterMark
- clearWaterMark
- setCameraEventListener
- String getTrackID()
-
获取 TrackID,仅当发布成功后,才可以获取到有效的 TrackID
Returns String
- String getUserID()
-
获取 UserID
Returns String
- String getTag()
-
获取 Tag
Returns String
- boolean isAudio()
-
是否为音频 Track
Returns boolean
- boolean isVideo()
-
是否为视频 Track
Returns boolean
- boolean isMuted()
-
该 Track 是否处于静默状态
Returns boolean
- void setMuted(boolean muted)
-
设置是否静默该 track,静默后,SDK 将会发送静默帧数据
当静默状态改变后,远端用户将会收到 QNTrackInfoChangedListener.onMuteStateChanged 的回调
Parameters-
muted: boolean
是否静默
-
- void destroy()
-
销毁本地创建的 Track
- void sendSEI(String message, int repeatCount)
-
发送 SEI
1. SEI 信息会携带到视频的编码数据中,在 CDN 转推 场景下,Track 处于正常发布状态时,调用该接口后,观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI 信息。
2. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异,详情可参考 SEI 发送指南
该接口已废弃, 请使用 int sendSEI(byte[] message, int repeatCount)
Parameters-
message: String
消息内容
-
repeatCount: int
重复次数,-1 为每一帧都发送
-
- void sendSEI(String message, byte[] uuid, int repeatCount)
-
发送 SEI
1. SEI 信息会携带到视频的编码数据中,在 CDN 转推 场景下,Track 处于正常发布状态时,调用该接口后,观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI 信息。
2. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异,详情可参考 SEI 发送指南
该接口已废弃, 请使用 int sendSEI(byte[] message, byte[] uuid, int repeatCount)
Parameters-
message: String
消息内容
-
uuid: byte[]
唯一 ID;必须为 16 个字节
-
repeatCount: int
重复次数,-1 为每一帧都发送
-
- int sendSEI(byte[] message, int repeatCount)
-
发送 SEI
1. SEI 信息会携带到视频的编码数据中,在 CDN 转推 场景下,Track 处于正常发布状态时,调用该接口后,观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI 信息。
2. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异,详情可参考 SEI 发送指南
Parameters-
message: byte[]
消息内容;最多为 4096 字节
-
repeatCount: int
重复次数
Returns 调用返回值,详见 QNErrorCode -
- int sendSEI(byte[] message, byte[] uuid, int repeatCount)
-
发送 SEI
1. SEI 信息会携带到视频的编码数据中,在 CDN 转推 场景下,Track 处于正常发布状态时,调用该接口后,观众端即可使用支持解析 SEI 的播放器来获取对应的 SEI 信息。
2. 单路流转推和多路流合流转推在发送 SEI 信息的使用姿势上存在差异,详情可参考 SEI 发送指南
Parameters-
message: byte[];最多为 4096 字节
消息内容
-
uuid: byte[]
唯一 ID;必须为 16 个字节
-
repeatCount: int
重复次数
Returns 调用返回值,详见 QNErrorCode -
- void setVideoEncoderConfig(QNVideoEncoderConfig config)
-
动态修改视频 Track 的编码参数(分辨率、帧率、码率等)
1. 该接口用于在通话过程中动态修改视频的编码参数,若您无需修改,可在创建视频 Track 时通过对应的 TrackConfig 直接指定编码参数
2. 建议修改时目标编码分辨率小于采集的分辨率。当目标编码分辨率大于采集分辨率时,SDK 会基于采集分辨率裁剪输出一个和目标编码分辨率宽高比相匹配,但小于等于采集分辨率的参数
Parameters-
config: QNVideoEncoderConfig
目标编码配置
-
- void setVideoFrameListener(QNVideoFrameListener listener)
-
设置视频数据监听
Parameters-
listener: QNVideoFrameListener
视频数据监听接口
-
- void play(QNRenderView view)
-
设置预览窗口
Parameters-
view: QNRenderView
预览窗口
-
- void startCapture()
-
开始相机采集
- void stopCapture()
-
停止相机采集
- void switchCamera(QNCameraSwitchResultCallback callback)
-
切换相机前后置
Parameters-
callback: QNCameraSwitchResultCallback
切换相机前后置结果回调接口
-
- boolean turnLightOn()
-
开启闪光灯
Returns boolean
- boolean turnLightOff()
-
关闭闪光灯
Returns boolean
- void manualFocus(float x, float y, int viewWidth, int viewHeight)
-
手动聚焦
对于前置摄像头,大部分机型并不支持手动对焦,因此,请勿调用该接口,否则会抛异常
Parameters-
x: float
焦点 x 相对窗口宽度的绝对坐标
-
y: float
焦点 y 相对窗口高度的绝对坐标
-
viewWidth: int
窗口的宽度
-
viewHeight: int
窗口的高度
-
- void setExposureCompensation(int value)
-
设置曝光度
曝光度的有效值范围是从 getMinExposureCompensation 到 getMaxExposureCompensation。因此,设置曝光度前需获取到当前设备支持调整的曝光范围,若获取到的数值均是 0,则设备不支持曝光补偿。
Parameters-
value: int
曝光度
-
- int getMaxExposureCompensation()
-
获取最大曝光度
若该接口和 getMinExposureCompensation 均返回 0,则当前设备不支持曝光度调整
Returns int
- int getMinExposureCompensation()
-
获取最小曝光度
若该接口和 getMaxExposureCompensation 均返回 0,则当前设备不支持曝光度调整
Returns int
- void setZoom(float zoom)
-
设置缩放大小
缩放大小的有效参数需要从 getZooms 接口中获取,其他参数将会导致设置失效
Parameters-
zoom: float
缩放大小
-
- List<Float> getZooms()
-
获取支持的缩放大小列表
若接口返回 null 则代表当前设备不支持缩放
Returns List<Float>
- void setMirror(boolean mirror)
-
设置是否镜像
通过该接口设置镜像后,会同时影响预览和编码的数据,产生镜像的效果
Parameters-
mirror: boolean
是否镜像
-
- void setPreviewEnabled(boolean isEnabled)
-
设置是否允许预览
Parameters-
isEnabled: boolean
是否允许预览
-
- void setBeauty(QNBeautySetting beautySetting)
-
设置/更新内置美颜相关参数配置
内置美颜可通过 QNBeautySetting.setEnable 接口进行开启/关闭
若不使用内置美颜的相关配置,则可以不用导入 libqndroid_beauty.so
Parameters-
beautySetting: QNBeautySetting
美颜配置
-
- int pushImage(QNImage image)
-
使用图片替代摄像头采集的视频数据,返回值代表接口调用是否成功,若接口调用成功,但是图片推流失败,将会通过 QNCameraEventListener.onPushImageError 接口回调相关错误。
接口返回值定义如下:
code describe message SUCCESS 接口调用成功 ERROR_INVALID_PARAMETER 参数错误 请检查 QNImage 是否传入了合法资源路径 Parameters-
image: QNImage
图片配置
Returns int -
- void setWaterMark(QNVideoWaterMark waterMark)
-
设置水印
Parameters-
waterMark: QNVideoWaterMark
水印配置
-
- void clearWaterMark()
-
清空水印配置
- void setCameraEventListener(QNCameraEventListener listener)
-
设置相机事件监听
该监听可用于选择实际的采集参数,监听摄像头生命周期以及相关错误回调
Parameters-
listener: QNCameraEventListener
相机事件监听接口
-