|
JRTCSDK-iOS v2601.0
多方通话 API 文档
|
音视频设备管理 更多...
#include <JRTCMediaDevice.h>
类方法 | |
| (JRTCMediaDevice *_Nullable) | + create:callback:initParam: |
| (void) | + destroy |
属性 | |
| id< AudioInputFrameCallback > | audioInputFrameCallback |
| bool | isAudioInputStart |
| bool | isAudioOutputStart |
| bool | cameraOpen |
| bool | videoFileOpen |
| JRTCMediaDeviceCamera * | currentCamera |
| NSArray< JRTCMediaDeviceCamera * > * | cameras |
| JRTCMediaDeviceCamera * | defaultCamera |
| JRTCMediaDeviceAudioParam * | audioParam |
| NSString * | videoFileId |
| bool | audioInterrupt |
| JRTCMediaDeviceVideoAngle | videoAngle |
| bool | isAutoScreenOrientation |
| bool | useInternalAudioDeviceLogic |
| NSString * | appUrlScheme |
| NSArray< JRTCMediaDeviceAudio * > * | audioInputs |
| JRTCMediaDeviceAudio * | audioInput |
| NSArray< JRTCMediaDeviceAudio * > * | audioOutputs |
| JRTCMediaDeviceAudio * | audioOutput |
| NSArray< JRTCMediaDeviceWindow * > * | desktops |
| NSArray< JRTCMediaDeviceWindow * > * | windows |
| JRTCMediaDeviceWindow * | screenshareWindow |
| bool | defaultSpeakerOn |
音视频设备管理
| + (JRTCMediaDevice *_Nullable) create: | (JRTCClient *_Nonnull) | client | |
| callback: | (id< JRTCMediaDeviceCallback > _Nonnull) | callback | |
| initParam: | (JRTCMediaDeviceInitParam *_Nullable) | initParam |
创建 JRTCMediaDevice 对象
JRTCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用
destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JRTCMediaDevice 对象| client | JRTCClient 对象 |
| callback | JRTCMediaDeviceCallback 对象,用于回调相关通知 |
| initParam | 预留参数,目前不生效 |
| JRTCClient、JRTCMediaDeviceCallback 任意一个参数传空就会调用失败 |
| + (void) destroy |
销毁 JRTCMediaDevice 对象
| - (bool) enableAudioInputFromFile: | (bool) | enable | |
| filePath: | (NSString *__nullable) | filePath | |
| loop: | (bool) | loop |
开始/结束播放本地音频文件作为音频源输入
| enable | - true: 开始输入,当输入完成后会收到 onFileAudioInputDidFinish 回调通知
|
| filePath | 音频文件路径,支持pcm,wav的格式(需要单声道,采样率16K音频文件) |
| loop | 是否循环播放 |
| - (bool) enableScreenCapture: | (bool) | enable |
开启/关闭屏幕采集
| enable | 开启或关闭屏幕采集
|
| - (bool) enableScreenCapture: | (bool) | enable | |
| appGroupId: | (NSString *__nullable) | appGroupId | |
| preferredExtension: | (NSString *__nullable) | preferredExtension |
开启/关闭屏幕采集
| enable | 是否开启 |
| appGroupId | extension 和 app 所处于的同一个 groupId,如果是关闭可以传空 |
| preferredExtension | 希望打开的 extension 的 ID,如果是关闭可以传空 |
| - (bool) enableScreenCapture: | (bool) | enable | |
| appGroupId: | (NSString *__nullable) | appGroupId | |
| preferredExtension: | (NSString *__nullable) | preferredExtension | |
| captureAudio: | (bool) | captureAudio |
开启/关闭屏幕采集
| enable | 是否开启 |
| appGroupId | extension 和 app 所处于的同一个 groupId,如果是关闭可以传空 |
| preferredExtension | 希望打开的 extension 的 ID,如果是关闭可以传空 |
| captureAudio | 是否采集系统音频,需要 iOS 13.0 以及以上 |
| - (void) enableSpeaker: | (bool) | enable |
开启/关闭扬声器,iOS 使用
只有在音频已经启动的情况下调用才会生效
| enable | 开启或关闭扬声器
|
| - (int) getAnrNoiseLevel |
获取当前噪声强度 环境平均噪声强度(1s), 检测需要打开麦克风 startAudio 或者 startAudioInput
| - (int) getAnrNoiseRatio |
获取当前信噪比强度 环境平均信噪比强度(1s), 检测需要打开麦克风 startAudio 或者 startAudioInput
| - (JRTCMediaDeviceAudioRouteType) getAudioRouteType |
获得当前音频输出通道类型,如扬声器、听筒、耳机、蓝牙等
| - (int) getMicLevel |
获取当前本地音量级别,音量级别范围为0-100,用以测试设备 目前只在开始麦克风检测,或者当房间内有输入音频时,才能获取到有效的音量级别
| - (NSString *__nullable) getScreenCaptureId |
获得屏幕采集视频流ID
| - (int) getScreenFramerate |
获得当前屏幕采集帧率
| - (int) getSpkLevel |
获取当前扬声器音量级别,音量级别范围为0-100,用以测试设备 目前只在开始扬声器检测,或者当房间内有输出音频时,才能获取到有效的音量级别
| - (bool) isSpeakerOn |
扬声器是否已打开,iOS 使用
| - (bool) recoveryRecordFile: | (NSString *_Nonnull) | fileDir |
恢复录制文件
| fileDir | 录制文件所在本地目录 |
| - (void) resetScreenCaptureData |
重置屏幕采集数据
| - (void) setAec: | (bool) | aecOn |
| - (void) setAgc: | (bool) | agcOn |
| - (void) setAudioInputFrameCallback: | (id< AudioInputFrameCallback > _Nullable) | callback |
设置音频输入帧回调
| callback | 原始音频数据输入回调代理对象 |
| - (void) setAutoScreenOrientation: | (bool) | enable |
设置屏幕方向自适应,默认开启
| - (void) setCameraProperty: | (int) | width | |
| height: | (int) | height | |
| framerate: | (int) | frameRate |
设置摄像头采集属性
在调用开始自身视频渲染前设置即可生效
| width | 采集宽度,默认为 640 |
| height | 采集高度,默认为 360 |
| frameRate | 采集帧速率,默认为 24 |
| - (void) setCameraWatermarkList: | (JRTCMediaDeviceCamera *_Nonnull) | camera | |
| watermarkList: | (NSArray< JRTCRecordWatermark * > *_Nonnull) | watermarkList |
设置摄像头采集数据水印信息
| camera | 需要设置水印的摄像头对象 |
| watermarkList | 水印信息列表 |
| - (void) setDetectBrightness: | (bool) | enable |
设置是否需要检测光线明暗度,结果通过 JRTCMediaDeviceCallback#onCaptureBrightnessChanged 上报
startCamera 打开摄像头之前调用| enable | 是否打开光线明暗度检测 |
| - (void) setFrontCameraRenderMirror: | (bool) | mirror |
设置前置摄像头渲染是否镜像,默认镜像
| mirror | 是否镜像 |
| - (void) setScreenCaptureData: | (UIImage *__nonnull) | image |
设置屏幕采集数据
| image | 替换图片 |
| - (void) setScreenCaptureProperty: | (int) | width | |
| height: | (int) | height | |
| framerate: | (int) | frameRate |
设置屏幕共享采集属性
在调用开启屏幕共享前设置即可生效
| width | 采集宽度,默认1280 |
| height | 采集高度,默认720 |
| frameRate | 采集帧速率,默认10 |
| - (void) setVideoAngle: | (JRTCMediaDeviceVideoAngle) | angle |
设置视频窗体角度
| angle | 视频旋转角度,详见 JRTCMediaDeviceVideoAngle |
| - (void) setVideoCaptureFrameCallback: | (id< VideoCaptureFrameCallback > _Nullable) | callback |
设置视频采集帧数据回调
| callback | VideoCaptureFrameCallback 接口对象 |
| - (void) setVideoFileFrame: | (CVPixelBufferRef __nonnull) | srcFrame | |
| angle: | (int) | angle | |
| mirror: | (int) | mirror |
向文件视频源逐帧添加视频数据
调用此方法时要保证文件视频源已开启
| srcFrame | CVPixelBufferRef 视频数据 |
| angle | 视频角度, 为 90 的倍数 |
| mirror | 是否镜像,0 不镜像,1 镜像 |
| - (bool) setVideoFileFrame: | (NSData *__nonnull) | srcFrame | |
| format: | (JRTCMediaDeviceVideoPixelFormat) | format | |
| width: | (int) | width | |
| height: | (int) | height | |
| angle: | (int) | angle |
逐帧采集视频画面
调用此方法时要保证文件视频源已开启
| srcFrame | 画面二进制数据 |
| format | 视频像素格式 |
| width | 视频画面像素宽 |
| height | 视频画面像素高 |
| angle | 视频角度,为 90 的倍数 |
| - (bool) snapshotWithStreamId: | (NSString *__nonnull) | streamId | |
| path: | (NSString *__nonnull) | path |
截图
| streamId | 要截图的视频流ID |
| path | 要存放截图的文件路径 |
| - (void) specifyCamera: | (JRTCMediaDeviceCamera *__nonnull) | camera |
指定要开启的摄像头,在 startCamera 之前调用
| camera | 摄像头对象 |
| - (void) specifyCameraAngle: | (int) | angle |
指定摄像头采集角度,为90的倍数
| angle | 角度 |
| - (bool) startAudio |
启动音频
| - (bool) startAudioInput |
打开音频输入设备
| - (bool) startAudioOutput |
打开音频输出设备
| - (bool) startAudioRecord: | (NSString *_Nullable) | filePath | |
| audioSource: | (JRTCRecordAudioSource) | audioSource | |
| fileType: | (JRTCAudioRecordFileType) | fileType |
开启音频录制(本地录制,不需要建立通信,不能和视频录制 startVideoCaptureRecord 同时开启)
| filePath | 存储路径 |
| audioSource | 录制文件音频源 |
| fileType | 文件类型,必须包含文件名(xxx.wav或者pcm) |
| - (bool) startAudioTest: | (JRTCMediaDeviceTestType) | type | |
| fileName: | (NSString *__nullable) | fileName |
检测音频设备是否正常
| type | 音频设备类型,JRTCMediaDeviceTestType |
| fileName | 测试扬声器时播放的文件路径,测试麦克风是传 nil 即可 |
| - (bool) startCamera |
开启摄像头
onCameraUpdate 回调| - (JRTCMediaDeviceVideoCanvas *__nullable) startCameraVideo: | (JRTCMediaDeviceRender) | renderType |
开始本端视频渲染
获取本端视频预览对象 JRTCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
| renderType | 渲染模式:
|
| - (JRTCMediaDeviceVideoCanvas *__nullable) startCameraVideo: | (JRTCMediaDeviceRender) | type | |
| view: | (UIView *__nonnull) | view |
开始自身视频渲染
获取本端视频预览对象 JRTCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
| type | 渲染模式:
|
| view | 渲染视图控件 |
| - (bool) startRing: | (NSString *_Nonnull) | filePath | |
| isLoop: | (bool) | isLoop |
开始播放音频
onRingPlayFinish 回调通知 | filePath | 音频文件路径,支持pcm,wav的格式(需要单声道,采样率16K音频文件) |
| isLoop | 是否循环播放 |
| - (JRTCMediaDeviceVideoCanvas *__nullable) startVideo: | (NSString *__nonnull) | streamId | |
| renderType: | (JRTCMediaDeviceRender) | type |
开始其他端的视频渲染
获取其他端的视频预览对象 JRTCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
| streamId | 视频流ID |
| type | 渲染模式:
|
| - (JRTCMediaDeviceVideoCanvas *__nullable) startVideo: | (NSString *__nonnull) | streamId | |
| renderType: | (JRTCMediaDeviceRender) | type | |
| view: | (UIView *__nonnull) | view |
开始其他端的视频渲染
获取其他端的视频预览对象 JRTCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
| streamId | 视频流ID |
| type | 渲染模式:
|
| view | 渲染视图控件 |
| - (bool) startVideoCaptureRecord: | (NSString *_Nonnull) | streamId | |
| recordParam: | (JRTCRecordVideoCaptureParam *_Nonnull) | recordParam |
开启视频录制(本地录制,不需要建立通信,不能和音频录制 startAudioRecord 同时开启)
| streamId | 视频流ID, (包括摄像头ID、文件视频源ID、屏幕ID等) |
| recordParam | 录制参数 |
| - (bool) startVideoCaptureRecord: | (NSString *_Nonnull) | filePath | |
| streamId: | (NSString *_Nonnull) | streamId | |
| audioSource: | (JRTCRecordAudioSource) | audioSource | |
| fileType: | (JRTCVideoRecordFileType) | fileType | |
| width: | (int) | width | |
| height: | (int) | height |
开启视频录制(本地录制,不需要建立通信,不能和音频录制 startAudioRecord 同时开启)
| filePath | 存储路径 |
| streamId | 视频流ID, (包括摄像头ID、文件视频源ID、屏幕ID等) |
| audioSource | 录制文件音频源 |
| fileType | 文件类型 |
| width | 视频画面像素宽 |
| height | 视频画面像素高 |
| - (bool) startVideoFile |
开启视频文件作为视频输入源
onCameraUpdate 回调| - (void) stopAllVideos |
停止所有视频渲染
| - (bool) stopAudio |
停止音频
| - (bool) stopAudioInput |
关闭音频输入设备
| - (bool) stopAudioOutput |
关闭音频输出设备
| - (bool) stopAudioRecord |
停止音频录制(本地录制,不需要建立通信)
| - (bool) stopAudioTest: | (JRTCMediaDeviceTestType) | type |
停止检测音频设备
| type | 音频设备类型,JRTCMediaDeviceTestType |
| - (bool) stopCamera |
关闭摄像头
onCameraUpdate 回调| - (bool) stopRing |
| - (void) stopVideo: | (JRTCMediaDeviceVideoCanvas *__nonnull) | canvas |
停止视频渲染
| canvas | JRTCMediaDeviceVideoCanvas 对象,由 startVideo 或 startCameraVideo 接口返回 |
| - (bool) stopVideoCaptureRecord: | (NSString *_Nonnull) | streamId |
关闭视频录制(本地录制,不需要建立通信,不能和音频同时录制)
| streamId | 视频流ID, (包括摄像头ID、文件视频源ID、屏幕ID等) |
| - (bool) stopVideoFile |
关闭视频文件作为视频输入源
onCameraUpdate 回调| - (bool) suspendAudioInputFromFile: | (bool) | suspend |
暂停/继续播放语音文件作为音频源输入
| suspend | true 暂停播放 false 继续播放 |
| - (bool) switchCamera |
切换摄像头
内部会根据当前摄像头类型来进行切换
switchCamera: 接口并提供返回值| - (bool) switchCamera: | (JRTCMediaDeviceCamera *__nonnull) | camera |
切换到指定摄像头
调用此方法时需要保证摄像头已打开并且摄像头数大于0,否则将直接返回 false
| camera | 摄像头对象 |
onCameraUpdate 回调
|
readwritenonatomiccopy |
应用的 URL Schemes,完整的路径,格式:xxxx:// 用于应用外屏幕共享开启后返回主程序
|
readwritenonatomicstrong |
当前音频输入设备,mac 使用
|
readwritenonatomicassign |
原始音频数据输入回调代理对象
|
readnonatomicassign |
音频输入设备列表,mac 使用
|
readnonatomicassign |
是否声音被中断
|
readwritenonatomicstrong |
当前音频输出设备,mac 使用
|
readnonatomicassign |
音频输出设备列表,mac 使用
|
readwritenonatomicstrong |
音频参数
需要在调用 startAudio 方法前设置,即连接通话或加入房间前设置此参数。若不设置此参数,将使用默认值。
|
readnonatomicassign |
摄像头是否打开
|
readnonatomicassign |
摄像头列表
|
readnonatomicassign |
当前摄像头
|
readwritenonatomicassign |
默认摄像头
|
readwritenonatomicassign |
没有插入耳机或外接蓝牙时是否默认开启扬声器,默认关闭,iOS 使用
|
readnonatomicassign |
桌面列表,mac 使用
|
readnonatomicassign |
音频输入设备是否打开
|
readnonatomicassign |
音频输出设备是否打开
|
readnonatomicassign |
屏幕方向是否自适应
|
readwritenonatomicstrong |
屏幕共享的窗口,mac 使用
|
readwritenonatomicassign |
是否使用内部音频设备逻辑
1.打开扬声器 -> 使用扬声器输出声音 2.连上蓝牙耳机 -> 使用蓝牙耳机输出声音,如果扬声器开着则关闭扬声器 3.插入耳机 -> 使用耳机输出声音,如果扬声器开着则关闭扬声器 4.蓝牙耳机和有线耳机以最后连上的作为输出 5.关闭扬声器 -> (蓝牙耳机|有线耳机) > 听筒
|
readwritenonatomicassign |
视频窗体角度
|
readnonatomicstrong |
视频文件作为本地视频源的视频流ID
|
readnonatomicassign |
文件播放是否打开
|
readnonatomicassign |
窗口列表,mac 使用