ByteRTCAudioMixingManager

@interface ByteRTCAudioMixingManager :NSObject

成员函数

返回 名称
void startAudioMixing:filePath:config:
void stopAudioMixing:
void pauseAudioMixing:
void resumeAudioMixing:
void preloadAudioMixing:filePath:
void unloadAudioMixing:
void setAudioMixingVolume:volume:type:
int getAudioMixingDuration:
int getAudioMixingCurrentPosition:
void setAudioMixingPosition:position:
void enableAudioMixingFrame:
void disableAudioMixingFrame
int pushAudioMixingFrame:

函数说明

startAudioMixing:filePath:config:

-(void)startAudioMixing:(int)id filePath:(NSString * _Nullable)filePath config:(ByteRTCAudioMixingConfig * _Nullable)config;

开始播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID
混音 ID 用于标识混音,请保证混音 ID 唯一性。
如果已经通过 preloadAudioMixing:filePath: 将音效加载至内存,确保此处的 ID 与 preloadAudioMixing:filePath: 设置的 ID 相同。
使用相同的 ID 重复调用该方法后,前一次混音会停止,后一次混音开始,且 SDK 会使用 rtcEngine:onAudioMixingStateChanged:state:error: 回调通知前一次混音已停止。
filePath NSString* 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。
config ByteRTCAudioMixingConfig* 混音配置
可以设置混音的播放次数、是否本地播放、以及是否将混音发送至远端,详见 ByteRTCAudioMixingConfig。

注意

stopAudioMixing:

-(void)stopAudioMixing:(int)id;

停止播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID

注意

pauseAudioMixing:

-(void)pauseAudioMixing:(int)id;

暂停播放音乐文件

传入参数

参数名 类型 说明
id int 混音 ID

注意

resumeAudioMixing:

-(void)resumeAudioMixing:(int)id;

恢复播放音乐文件

传入参数

参数名 类型 说明
id int 混音 ID

注意

preloadAudioMixing:filePath:

-(void)preloadAudioMixing:(int)id filePath:(NSString * _Nullable)filePath;

预加载指定音乐文件到内存中

传入参数

参数名 类型 说明
id int 混音 ID
应用调用者维护,请保证唯一性。
如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
如果先调用 startAudioMixing:filePath:config:,再使用相同的 ID 调用本方法 ,会先回调 rtcEngine:onAudioMixingStateChanged:state:error: 上一个混音停止,然后加载后一个混音。
使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing:filePath:config: 播放 B.mp3,请先调用 unloadAudioMixing: 卸载 A.mp3 ,否则会报错 ByteRTCAudioMixingErrorLoadConflict。
filePath NSString* 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。
如果音乐文件长度超过 20s,会回调加载失败,见 rtcEngine:onAudioMixingStateChanged:state:error:。

注意

unloadAudioMixing:

-(void)unloadAudioMixing:(int)id;

卸载指定音乐文件

传入参数

参数名 类型 说明
id int 混音 ID

注意 不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 rtcEngine:onAudioMixingStateChanged:state:error:。

setAudioMixingVolume:volume:type:

-(void)setAudioMixingVolume:(int)id volume:(int)volume type:(ByteRTCAudioMixingType)type;

调节音乐文件在本地和远端播放的音量大小

传入参数

参数名 类型 说明
id int 混音 ID
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)
type ByteRTCAudioMixingType 混音播放类型
设置音乐文件是否本地播放、以及是否发送到远端,由此控制音乐文件本地或远端播放的音量,详见 ByteRTCAudioMixingType。

注意

getAudioMixingDuration:

-(int)getAudioMixingDuration:(int)id;

获取音乐文件时长

传入参数

参数名 类型 说明
id int 混音 ID

返回值

注意 调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing:filePath: 或 startAudioMixing:filePath:config:。

getAudioMixingCurrentPosition:

-(int)getAudioMixingCurrentPosition:(int)id;

获取音乐文件播放进度

传入参数

参数名 类型 说明
id int 混音 ID

返回值

注意 调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixing:filePath:config: 开始播放音乐文件。

setAudioMixingPosition:position:

-(void)setAudioMixingPosition:(int)id position:(int)position;

设置音乐文件的播放位置

传入参数

参数名 类型 说明
id int 混音 ID
position int 进度条位置
参数为整数,单位为毫秒。

注意

enableAudioMixingFrame:

-(void)enableAudioMixingFrame:(ByteRTCAudioMixingType)type;

启动外部音频流混音

传入参数

参数名 类型 说明
type ByteRTCAudioMixingType 混音播放类型
设置外部音频流是否本地播放、以及是否发送到远端,详见 ByteRTCAudioMixingType。

注意

disableAudioMixingFrame

-(void)disableAudioMixingFrame;

关闭外部音频流混音

注意 使用 enableAudioMixingFrame: 开启外部音频流混音后,请使用本方法关闭该混音。

pushAudioMixingFrame:

-(int)pushAudioMixingFrame:(ByteRTCAudioFrame* _Nullable)audioFrame;

向 SDK 推送外部音频帧数据

传入参数

参数名 类型 说明
audioFrame ByteRTCAudioFrame* 音频帧
详见 ByteRTCAudioFrame

返回值

注意

ByteRTCEngineKit

@interface ByteRTCEngineKit : NSObject

SDK 回调给应用层的 delegate 对象,详见 ByteRTCEngineDelegate

静态函数

返回 名称
ByteRTCEngineKit* sharedInstance
void destroy
NSString* getSdkVersion
NSString* getErrorDescription:

成员函数

返回 名称
id initWithAppId:delegate:parameters:
void destroyEngine
BOOL setUserVisibility:
BOOL publish
BOOL unpublish
ByteRTCUserRoleType clientRole
int joinRoomByKey:roomId:userInfo:rtcRoomConfig:
int leaveRoom:
int leaveRoom
int updateToken:
void startAudioCapture
void stopAudioCapture
void setAudioScenario:
void setAudioProfile:
void muteLocalAudio:
void pauseAllSubscribedStream:
void resumeAllSubscribedStream:
void setAudioVolumeIndicationInterval:
void setCaptureVolume:volume:
void setPlaybackVolume:
void enableAudioPropertiesReport:
void setEarMonitorMode:
void setEarMonitorVolume:
void setLocalVideoSink:withSink:withPixelFormat:
void setRemoteVideoSink:withSink:withPixelFormat:
int setVideoEncoderConfig:config:
int setVideoCaptureConfig:
int setLocalVideoCanvas:withCanvas:
int setRemoteVideoCanvas:withIndex:withCanvas:
void startVideoCapture
void stopVideoCapture
void muteLocalVideo:
int setLocalVideoMirrorMode:
int setLocalVideoMirrorType:
int switchCamera:
int checkVideoEffectLicense:
int enableVideoEffect:
void setVideoEffectAlgoModelPath:
int setVideoEffectNodes:
int updateVideoEffectNode:nodeKey:nodeValue:
int setVideoEffectColorFilter:
int setVideoEffectColorFilterIntensity:
int sendSEIMessage:andMessage:andRepeatCount:
int registerLocalVideoProcessor:withConfig:
void registerLocalEncodedVideoFrameObserver:
void subscribeUserStream:streamType:mediaType:videoConfig:
int setAudioPlaybackDevice:
int startLiveTranscoding:observer:
int stopLiveTranscoding
int updateLiveTranscoding:
int enableCloudRending:
int updateCloudRending:
int disableCloudRending
BOOL pushExternalVideoFrame:time:
BOOL pushExternalVideoFrame:time:rotation:
BOOL pushExternalVideoFrame:time:rotation:extendedData:supplementaryInfo:
BOOL pushExternalByteVideoFrame:
void enableExternalAudioDevice:playbackFormat:
void disableExternalAudioDevice
BOOL setRecordingAudioFrameParameters:channels:
BOOL setPlaybackAudioFrameParameters:channels:
BOOL setMixedAudioFrameParameters:channels:
BOOL setAudioFrameObserver:
BOOL registerLocalAudioProcessor:format:
int pushExternalAudioFrame:
int pullExternalAudioFrame:
int sendRoomMessage:
int sendRoomBinaryMessage:
int setBusinessId:
int feedbackTypes:desc:
int64_t sendUserMessage:message:
int64_t sendUserBinaryMessage:message:
void setRemoteAudioPlaybackVolume:volume:
int setPublishFallbackOption:
int setSubscribeFallbackOption:
int setRemoteUserPriority:uid:
void setEncryptType:key:
void setCustomizeEncryptHandler:
ByteRTCRoom* createRtcRoom:
void publishScreen
void unpublishScreen
void pushScreenCaptureFrame:time:rotation:
int startScreenSharingWithPreferredExtension:groupId:
void API_AVAILABLE
void startASR:handler:
void stopASR
int startFileRecording:withRecordingConfig:
void stopFileRecording:
ByteRTCAudioMixingManager* getAudioMixingManager
ByteRTCPositionAudioRender* getPositionAudioRender
void login:uid:
void logout
void updateLoginToken:
void setServerParams:url:
void getPeerOnlineStatus:
int64_t sendUserMessageOutsideRoom:message:
int64_t sendUserBinaryMessageOutsideRoom:message:
int64_t sendServerMessage:
int64_t sendServerBinaryMessage:
void setScreenAudioSourceType:
void setScreenAudioStreamIndex:
int pushScreenAudioFrame:
void setVideoSourceType:WithStreamIndex:
void setExternalVideoEncoderEventHandler:
BOOL pushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:
void setVideoDecoderConfig:withVideoDecoderConfig:
void requestRemoteVideoKeyFrame:
void registerRemoteEncodedVideoFrameObserver:
int sendStreamSyncInfo:config:

函数说明

sharedInstance

+ (ByteRTCEngineKit * _Nullable) sharedInstance;

获取 ByteRTCEngineKit 单例对象。

返回值 由 initWithAppId:delegate:parameters: 创建的 ByteRTCEngineKit 对象。

注意

destroy

+ (void)destroy;

销毁由 initWithAppId:delegate:parameters: 创建的引擎实例,并释放所有相关资源。

注意

getSdkVersion

+ (NSString * _Nonnull)getSdkVersion;

获取 SDK 当前的版本号。

返回值 SDK 当前的版本号。

getErrorDescription:

+ (NSString * _Nonnull)getErrorDescription:(NSInteger)code;

获取 SDK 内各种错误码、警告码的描述文字。

传入参数

参数名 类型 说明
code NSInteger 通过 rtcEngine:onWarning: 和 rtcEngine:onError: 回调获得的值,
具体可以参考 ByteRTCWarningCode 和 ByteRTCErrorCode 。

返回值 描述文字。

initWithAppId:delegate:parameters:

- (id _Nonnull)initWithAppId:(NSString * _Nonnull)appId delegate:(id<ByteRTCEngineDelegate> _Nullable)delegate parameters:(NSDictionary* _Nullable)parameters;

创建引擎对象。
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

参数名 类型 说明
appId NSString* 每个应用的唯一标识符,由 RTC 控制台随机生成的。
不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
delegate id SDK 回调给应用层的 delegate,详见 ByteRTCEngineDelegate
parameters NSDictionary* 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值 可用的 ByteRTCEngineKit 实例

注意 通常不建议在移动端设备上创建多于 2 个引擎实例。

destroyEngine

- (void)destroyEngine;

手动销毁引擎实例对象,如果当前的引擎对象是通过 initWithAppId:delegate:parameters: 所创建的,则行为与 destroy 保持一致

注意

setUserVisibility:

- (BOOL)setUserVisibility:(BOOL)enable;

设置用户可见性。默认为可见。
通过对用户可见性进行设置,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
enable BOOL 设置用户是否对房间内其他用户可见:
• true: 可以被房间中的其他用户感知,且可以在房间内发布和订阅音视频流;
• false: 无法被房间中的其他用户感知,且只能在房间内订阅音视频流。

返回值 方法调用结果:

注意

publish

- (BOOL)publish;

将本端音视频流发布到此房间。

注意

unpublish

- (BOOL)unpublish;

在当前所在房间内停止发布本地音视频流。

注意

clientRole

- (ByteRTCUserRoleType)clientRole;

获取当前用户角色。

返回值 当前用户角色,详见 ByteRTCUserRoleType 枚举类型。

joinRoomByKey:roomId:userInfo:rtcRoomConfig:

- (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId userInfo:(ByteRTCUserInfo *_Nonnull)userInfo rtcRoomConfig:(ByteRTCRoomConfig *_Nonnull)rtcRoomConfig;

创建/加入房间:房间不存在时即创建房间;房间存在时,未加入房间的用户可加入这个房间。
同一个房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom: 退出当前房间后,才能加入下一个房间。

传入参数

参数名 类型 说明
token NSString* 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token ,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token 。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
roomId NSString* 加入的房间 ID。
房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线 "_",at 符 "@",减号 "-"。
userInfo ByteRTCUserInfo* 用户信息,参看 ByteRTCUserInfo。
rtcRoomConfig ByteRTCRoomConfig* 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 ByteRTCRoomConfig。

返回值 方法调用结果。

注意

leaveRoom:

- (int)leaveRoom:(void (^_Nullable)(ByteRTCRoomStats *_Nonnull stat))leaveRoomBlock ;

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoomByKey:roomId:userInfo:rtcRoomConfig: 方法加入房间后,必须调用此方法离开房间,否则无法进入下一个房间。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,SDK 会执行调用此方法时传入的 Block 块。

传入参数

参数名 类型 说明
leaveRoomBlock void (^_Nullable 离开房间完成后执行的 Block 块。Block 的输入参数为加入房间到离开房间过程间的统计信息,详见 ByteRTCRoomStats。

返回值 方法调用结果。

注意

leaveRoom

- (int)leaveRoom;

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

返回值 方法调用结果。

注意

updateToken:

- (int)updateToken:(NSString *_Nonnull)token;

更新 Token。
用户调用 joinRoomByKey:roomId:userInfo:rtcRoomConfig: 方法加入房间时, 如果使用了过期的 Token 将导致加入房间失败,并会收到 rtcEngine:onJoinRoomResult:withUid:errorCode:joinType:elapsed: 回调, 回调错误码为 ByteRTCErrorCode 中的 ByteRTCErrorCodeInvalidToken 此时需要重新获取 Token,并调用此方法更新 Token。更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token NSString* 更新的动态密钥。

返回值 方法调用结果。

注意 Token 过期时,如果已经加入房间成功,则不会受到影响。Token 过期的错误会在下一次使用过期的 Token 加入房间时,或因本地网络状况不佳导致断网重新连入房间时通知用户。

startAudioCapture

- (void)startAudioCapture;

开启内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 的回调。
进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture: 的回调。

注意

stopAudioCapture

- (void)stopAudioCapture;

关闭内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 的回调。
进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture: 的回调。

注意

setAudioScenario:

- (void)setAudioScenario:(ByteRTCAudioScenarioType)audioScenario;

设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
本方法在进房前和进房后设置均可生效。

传入参数

参数名 类型 说明
audioScenario ByteRTCAudioScenarioType 音频场景类型,适用通话音量/媒体音量
详见 ByteRTCAudioScenarioType

注意

setAudioProfile:

- (void)setAudioProfile:(ByteRTCAudioProfileType)audioProfile;

设置音质档位。你应根据业务场景需要选择适合的音质档位。

传入参数

参数名 类型 说明
audioProfile ByteRTCAudioProfileType 音质档位,参看 ByteRTCAudioProfileType

注意

muteLocalAudio:

- (void)muteLocalAudio:(ByteRTCMuteState)muteState;

控制本地音频流的发送状态:发送/不发送。
使用此方法后,房间中的其他用户会收到回调 rtcEngine:onUserMuteAudio:muteState:。

传入参数

参数名 类型 说明
muteState ByteRTCMuteState 发送状态,标识是否发送本地音频流,详见 ByteRTCMuteState

返回值 方法调用结果

注意 本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。

pauseAllSubscribedStream:

- (void)pauseAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

暂停接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType ByteRTCPauseResumControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType。

注意

resumeAllSubscribedStream:

- (void)resumeAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType ByteRTCPauseResumControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType

注意

setAudioVolumeIndicationInterval:

- (void)setAudioVolumeIndicationInterval:(NSInteger)interval;

开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 rtcEngine:onAudioVolumeIndication:totalRemoteVolume:。

传入参数

参数名 类型 说明
interval NSInteger 收到音量提示回调的时间间隔
• ≤ 0:禁用音量提示功能。
• > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。
建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。

setCaptureVolume:volume:

- (void)setCaptureVolume:(ByteRTCStreamIndex)index volume:(int)volume;

调节音频采集音量

传入参数

参数名 类型 说明
index ByteRTCStreamIndex 流索引,指定调节主流还是调节屏幕流的音量,参看 ByteRTCStreamIndex
volume int 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。

注意

setPlaybackVolume:

- (void)setPlaybackVolume:(NSInteger)volume;

调节本地播放的所有远端用户混音后的音量。

传入参数

参数名 类型 说明
volume NSInteger 音频播放音量,取值范围:[0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。

enableAudioPropertiesReport:

- (void)enableAudioPropertiesReport:(ByteRTCAudioPropertiesConfig* _Nonnull)config;

启用音量提示。

传入参数

参数名 类型 说明
config ByteRTCAudioPropertiesConfig* 音频信息提示的相关配置,详见 ByteRTCAudioPropertiesConfig

注意 开启提示后,你可以: + 通过 rtcEngine:onLocalAudioPropertiesReport: 回调获取本地麦克风和屏幕音频流采集的音量信息;

setEarMonitorMode:

- (void)setEarMonitorMode:(ByteRTCEarMonitorMode)mode;

开启/关闭耳返功能

传入参数

参数名 类型 说明
mode ByteRTCEarMonitorMode 是否开启耳返功能,参看 ByteRTCEarMonitorMode

注意

setEarMonitorVolume:

- (void)setEarMonitorVolume:(NSInteger)volume;

设置耳返的音量

传入参数

参数名 类型 说明
volume NSInteger 耳返的音量,取值范围:[0,100],单位:%

注意

setLocalVideoSink:withSink:withPixelFormat:

- (void)setLocalVideoSink:(ByteRTCStreamIndex)index withSink:(id<ByteRTCVideoSinkDelegate> _Nullable)videoSink withPixelFormat:(ByteRTCVideoSinkPixelFormat)requiredFormat;

将本地视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
index ByteRTCStreamIndex 视频流属性。采集的视频流/屏幕视频流,参看 ByteRTCStreamIndex
videoSink id 自定义视频渲染器,参看 ByteRTCVideoSinkDelegate
requiredFormat ByteRTCVideoSinkPixelFormat video_sink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat

注意

setRemoteVideoSink:withSink:withPixelFormat:

- (void)setRemoteVideoSink:(ByteRTCRemoteStreamKey* _Nonnull)streamKey withSink:(id<ByteRTCVideoSinkDelegate> _Nullable)videoSink withPixelFormat:(ByteRTCVideoSinkPixelFormat)requiredFormat;

将远端视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
streamKey ByteRTCRemoteStreamKey* 远端流信息,用于指定需要渲染的视频流来源及属性,参看 ByteRTCRemoteStreamKey
videoSink id 自定义视频渲染器,参看 ByteRTCVideoSinkDelegate
requiredFormat ByteRTCVideoSinkPixelFormat videoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat

注意

setVideoEncoderConfig:config:

- (int)setVideoEncoderConfig:(ByteRTCStreamIndex)streamIndex config:(NSArray <ByteRTCVideoSolution *> * _Nullable)videoSolutions;

启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 视频流属性,参看 ByteRTCStreamIndex。
videoSolutions NSArray * 要推送的多路视频流参数,参看 ByteRTCVideoSolution。
最多支持 4 路参数。当设置了多路参数时,分辨率必须是从大到小排列。
最大分辨率为 4096px

返回值

注意

setVideoCaptureConfig:

- (int)setVideoCaptureConfig:(ByteRTCVideoCaptureConfig * _Nullable)captureConfig;

设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括分辨率、帧率。

传入参数

参数名 类型 说明
captureConfig ByteRTCVideoCaptureConfig* 视频采集参数。参看: ByteRTCVideoCaptureConfig。

返回值

注意

setLocalVideoCanvas:withCanvas:

- (int)setLocalVideoCanvas:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;

设置本地视频渲染时,使用的视图,并设置渲染模式。
你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。 如果需要解除绑定,你可以调用本方法绑定空视图。

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 流属性,参看 ByteRTCStreamIndex
canvas ByteRTCVideoCanvas* 视图信息和渲染模式,参看 ByteRTCVideoCanvas

返回值

setRemoteVideoCanvas:withIndex:withCanvas:

- (int)setRemoteVideoCanvas:(NSString * _Nonnull)uid withIndex:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;

渲染来自指定远端用户 uid 的视频流时,设置使用的视图和渲染模式。
如果需要解除视频的绑定视图,把 canvas 设置为空。

传入参数

参数名 类型 说明
uid NSString* 视频来源的远端用户 ID
streamIndex ByteRTCStreamIndex 视频流属性,参看 ByteRTCStreamIndex
canvas ByteRTCVideoCanvas* 视图信息和渲染模式,参看 ByteRTCVideoCanvas

返回值

注意

startVideoCapture

- (void)startVideoCapture;

开启内部视频采集。默认为关闭状态。
调用该方法后,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 的回调。
进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartVideoCapture: 的回调。

注意

stopVideoCapture

- (void)stopVideoCapture;

关闭内部视频采集。默认为关闭状态。
调用该方法后,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 的回调。
进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopVideoCapture: 的回调。

注意

muteLocalVideo:

- (void)muteLocalVideo:(ByteRTCMuteState)mute_state;

停止/启动发送本地视频流,默认不发送。
无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 rtcEngine:onUserMuteVideo:withMuteState: 的回调。

传入参数

参数名 类型 说明
mute_state ByteRTCMuteState 发送状态,标识是否发送本地视频流,参看 ByteRTCMuteState

注意

setLocalVideoMirrorMode:

- (int)setLocalVideoMirrorMode:(ByteRTCMirrorMode) mode;

设置采用前置摄像头采集时,是否开启镜像模式。默认为关闭状态。

传入参数

参数名 类型 说明
mode ByteRTCMirrorMode 是否开启镜像模式,参看 ByteRTCMirrorMode

返回值

setLocalVideoMirrorType:

- (int)setLocalVideoMirrorType:(ByteRTCMirrorType) mirrorType;

为本地采集到的视频流开启镜像

传入参数

参数名 类型 说明
mirrorType ByteRTCMirrorType 设置镜像类型,参看 ByteRTCMirrorType

注意

前置摄像头后置摄像头自定义采集视频源 桌面端摄像头
移动端本地渲染镜像,编码传输不镜像 本地渲染不镜像,编码传输不镜像 本地渲染不镜像,编码传输不镜像 /
桌面端// 本地渲染不镜像,编码传输不镜像 本地渲染镜像,编码传输不镜像

switchCamera:

- (int)switchCamera:(ByteRTCCameraID) cameraId;

切换视频内部采集时使用的前置/后置摄像头
调用此接口后,在本地会触发 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 回调。

传入参数

参数名 类型 说明
cameraId ByteRTCCameraID 移动端摄像头 ID,参看 ByteRTCCameraID。

返回值

注意

checkVideoEffectLicense:

- (int)checkVideoEffectLicense:(NSString * _Nonnull)licenseFile;

视频特效许可证检查

传入参数

参数名 类型 说明
licenseFile NSString* 许可证文件绝对路径

返回值

注意 enableVideoEffect: 开始使用视频特效前,需要先调用这个方法进行许可证验证

enableVideoEffect:

- (int)enableVideoEffect:(BOOL)enabled;

创建/销毁视频特效引擎

传入参数

参数名 类型 说明
enabled BOOL 是否创建视频特效引擎
• true: 创建
• false: 销毁

返回值 方法调用结果

注意

setVideoEffectAlgoModelPath:

- (void)setVideoEffectAlgoModelPath:(NSString * _Nonnull)modelPath;

设置视频特效算法模型路径

传入参数

参数名 类型 说明
modelPath NSString* 模型路径

setVideoEffectNodes:

- (int) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths;

设置视频特效素材包,支持同时设置多个素材包

传入参数

参数名 类型 说明
effectNodePaths NSArray * 特效素材包路径数组

返回值

注意 在调用这个方法之前,你须先调用 enableVideoEffect: 。

updateVideoEffectNode:nodeKey:nodeValue:

- (int) updateVideoEffectNode:(NSString * _Nonnull)nodePath nodeKey:(NSString * _Nonnull)nodeKey nodeValue:(float) nodeValue;

设置特效强度

传入参数

参数名 类型 说明
nodePath NSString* 特效素材包路径。
nodeKey NSString* 需要设置的素材 key 名称。参看 素材key对应说明。
nodeValue float 需要设置的强度值。取值范围为 [0,1],超出该范围设置无效。

返回值

注意 该接口仅适用于同时含有上述三个参数的特效资源,对于如大部分贴纸类等没有强度参数的特效,该接口调用无效。

setVideoEffectColorFilter:

- (int) setVideoEffectColorFilter:(NSString * _Nonnull)resPath;

设置颜色滤镜

传入参数

参数名 类型 说明
resPath NSString* 滤镜资源包绝对路径

返回值

setVideoEffectColorFilterIntensity:

- (int) setVideoEffectColorFilterIntensity:(float) intensity;

设置已启用的颜色滤镜强度

传入参数

参数名 类型 说明
intensity float 滤镜强度。取值范围 [0,1],超出范围时设置无效

返回值

sendSEIMessage:andMessage:andRepeatCount:

- (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount;

在视频通信时,通过视频帧发送 SEI 数据。

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 媒体流类型,参看 ByteRTCStreamIndex
message NSData* SEI 消息。长度不超过 4 kB。
repeatCount int 消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。

返回值

注意

registerLocalVideoProcessor:withConfig:

- (int)registerLocalVideoProcessor:(_Nullable id<ByteRTCVideoProcessorDelegate>) processor withConfig:(ByteRTCVideoPreprocessorConfig* _Nullable)config;

设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame: 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。

传入参数

参数名 类型 说明
processor id 自定义视频处理器,详见 ByteRTCVideoProcessorDelegate。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
在设计 processor 时,应从 ByteRTCVideoFrame 的 textureBuf 字段获取视频帧数据;
处理后返回的视频帧数据格式应为 ByteRTCVideoPixelFormat 中的 ByteRTCVideoPixelFormatCVPixelBuffer,且必须存放在返回帧数据的 textureBuf 字段中。
config ByteRTCVideoPreprocessorConfig* 自定义视频前处理器适用的设置,详见 ByteRTCVideoPreprocessorConfig。
当前,config 中的 required_pixel_format 仅支持:ByteRTCVideoPixelFormatI420 和 ByteRTCVideoPixelFormatUnknown:
• 设置为 UNKNOW 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
• 设置为 ByteRTCVideoPixelFormatI420 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。
• 设置为其他值时,此方法调用失败。

返回值

注意

registerLocalEncodedVideoFrameObserver:

- (void)registerLocalEncodedVideoFrameObserver:(_Nullable id<ByteRTCLocalEncodedVideoFrameObserver>) frameObserver;

注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame:Frame: 回调给用户

传入参数

参数名 类型 说明
frameObserver id 本地视频帧监测器,参看 ByteRTCLocalEncodedVideoFrameObserver。将参数设置为 nullptr 则取消注册。

注意 该方法可在进房前后任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调

subscribeUserStream:streamType:mediaType:videoConfig:

- (void)subscribeUserStream:(NSString *_Nonnull)userId streamType:(ByteRTCStreamIndex)streamType mediaType:(ByteRTCSubscribeMediaType)mediaType videoConfig:(ByteRTCSubscribeVideoConfig *_Nonnull)videoConfig;

订阅房间内指定的远端音视频流。
无论是否开启自动订阅,你都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名 类型 说明
userId NSString* 指定订阅的远端发布音视频流的用户 ID。
streamType ByteRTCStreamIndex 流属性,用于指定订阅主流/屏幕流,参看 ByteRTCStreamIndex。
mediaType ByteRTCSubscribeMediaType 媒体类型,用于指定订阅音/视频,参看 ByteRTCSubscribeMediaType。
videoConfig ByteRTCSubscribeVideoConfig* 视频订阅配置,参看 ByteRTCSubscribeVideoConfig。

注意

setAudioPlaybackDevice:

- (int)setAudioPlaybackDevice:(ByteRTCAudioPlaybackDevice)audioPlaybackDevice;

设置音频播放设备为扬声器或者听筒,默认使用扬声器。
音频播放设备发生变化时,会收到 rtcEngine:onAudioPlaybackDeviceChanged: 回调。

传入参数

参数名 类型 说明
audioPlaybackDevice ByteRTCAudioPlaybackDevice 音频播放设备(扬声器或者听筒),详见 ByteRTCAudioPlaybackDevice。

返回值 方法调用结果

注意

startLiveTranscoding:observer:

- (int)startLiveTranscoding:(ByteRTCLiveTranscoding *_Nullable)transcoding observer:(id<LiveTranscodingDelegate> _Nullable)observer;

开启转推直播,并设置合流的视频视图布局和音频属性。

传入参数

参数名 类型 说明
transcoding ByteRTCLiveTranscoding* observer
转推直播配置参数,详见 ByteRTCLiveTranscoding
observer id 端云一体转推直播观察者。
• 转推直播的状态和方式会通过回调上报 RTC Engine。
• 只有房间模式为直播模式,且用户角色为主播的用户才能调用此方法。
• 启用端云一体转推直播时,回调合流完成的音视频流和 SEI 信息给 App。详见 LiveTranscodingDelegate 数据类型。

注意

stopLiveTranscoding

- (int)stopLiveTranscoding;

停止转推直播。

返回值 方法调用结果。

updateLiveTranscoding:

- (int)updateLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding;

更新转推直播参数。
启用转推直播功能后,你可以使用此方法更新转推直播功能配置参数。

传入参数

参数名 类型 说明
transcoding ByteRTCLiveTranscoding* 视频合流配置参数,详见 ByteRTCLiveTranscoding 类型。

返回值 方法调用结果。

enableCloudRending:

- (int)enableCloudRending:(NSString *_Nonnull)rendingInfo;

按照传入的布局信息开启云端渲染。

传入参数

参数名 类型 说明
rendingInfo NSString* 渲染功能相关参数。

返回值 方法调用结果。

updateCloudRending:

- (int)updateCloudRending:(NSString *_Nonnull)rendingInfo;

按照传入的布局信息更新云端渲染。

传入参数

参数名 类型 说明
rendingInfo NSString* 渲染功能相关参数。

返回值 方法调用结果。

disableCloudRending

- (int)disableCloudRending;

停止云端渲染。

返回值 方法调用结果。

pushExternalVideoFrame:time:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime

返回值

注意 推送外部视频帧前,必须调用 setVideoSourceType:WithStreamIndex: 开启外部视频源采集。

pushExternalVideoFrame:time:rotation:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(ByteRTCVideoRotation)rotation;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime
rotation ByteRTCVideoRotation 当前视频角度

返回值

注意 推送外部视频帧前,必须调用 setVideoSourceType:WithStreamIndex: 开启外部视频源采集。

pushExternalVideoFrame:time:rotation:extendedData:supplementaryInfo:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(ByteRTCVideoRotation)rotation extendedData:(NSData* _Nullable)extendedData supplementaryInfo:(NSData* _Nullable)supplementoryInfo;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime
rotation ByteRTCVideoRotation 当前视频角度
extendedData NSData* 当前帧的扩展数据,没有的话就传空
supplementoryInfo NSData* 附加信息,比如人脸位置等等

返回值

注意 推送外部视频帧前,必须调用 setVideoSourceType:WithStreamIndex: 开启外部视频源采集。

pushExternalByteVideoFrame:

- (BOOL)pushExternalByteVideoFrame:(ByteRTCVideoFrame * _Nonnull)frame;

推送外部视频帧,使用 ByteRTCVideoFrame 进行封装。

传入参数

参数名 类型 说明
frame ByteRTCVideoFrame* 该视频帧包含待 SDK 编码的视频数据,参考 ByteRTCVideoFrame

返回值

注意 推送外部视频帧前,必须调用 setVideoSourceType:WithStreamIndex: 开启外部视频源采集。

enableExternalAudioDevice:playbackFormat:

- (void)enableExternalAudioDevice:(ByteRTCAudioFormat * _Nonnull) recordingFormat playbackFormat:(ByteRTCAudioFormat * _Nonnull) playbackFormat;

启用自定义音频采集渲染

传入参数

参数名 类型 说明
recordingFormat ByteRTCAudioFormat* 自定义音频数据采集格式,详见 ByteRTCAudioFormat
playbackFormat ByteRTCAudioFormat* 自定义音频数据渲染格式,详见 ByteRTCAudioFormat

注意

disableExternalAudioDevice

- (void)disableExternalAudioDevice;

禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。

注意

setRecordingAudioFrameParameters:channels:

- (BOOL)setRecordingAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels;

设置本地麦克风录制的音频数据回调参数

传入参数

参数名 类型 说明
samplesPerSec NSInteger 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels NSInteger 音频通道数,支持单声道(1)和双声道(2)

返回值 方法调用结果

注意 使用本方法设置参数,并使用 setAudioFrameObserver: 注册数据观察者,之后可以在 ByteRTCAudioFrameObserver的 onRecordAudioFrame:收到数据

setPlaybackAudioFrameParameters:channels:

- (BOOL)setPlaybackAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels;

设置远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
samplesPerSec NSInteger 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels NSInteger 音频通道数,支持单声道(1)和双声道(2)

返回值 方法调用结果

注意 使用本方法设置参数,并使用 setAudioFrameObserver: 注册数据观察者,之后可以在 ByteRTCAudioFrameObserver的 onPlaybackAudioFrame:收到数据

setMixedAudioFrameParameters:channels:

- (BOOL)setMixedAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels;

设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
samplesPerSec NSInteger 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels NSInteger 音频通道数,支持单声道(1)和双声道(2)

返回值 方法调用结果

注意 使用本方法设置参数,并使用 setAudioFrameObserver: 注册数据观察者,之后可以在 ByteRTCAudioFrameObserver的 onMixedAudioFrame:收到数据

setAudioFrameObserver:

- (BOOL)setAudioFrameObserver:(_Nullable id<ByteRTCAudioFrameObserver>) audioFrameObserver;

设置音频数据回调观察者

传入参数

参数名 类型 说明
audioFrameObserver id 音频数据回调的观察者对象,详见: ByteRTCAudioFrameObserver

返回值 方法调用结果

注意 本方法需要与下面3个方法配合使用:setRecordingAudioFrameParameters:channels:、 setPlaybackAudioFrameParameters:channels:、 setMixedAudioFrameParameters:channels:

registerLocalAudioProcessor:format:

- (BOOL)registerLocalAudioProcessor:(_Nullable id<ByteRTCAudioProcessor>) audioProcessor format:(ByteRTCAudioFormat* _Nullable)format;

设置自定义音频处理器。
使用该处理器,你可以调用 processAudioFrame: 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。
SDK 只持有 processor 的弱引用,你应保证其生命周期。

传入参数

参数名 类型 说明
audioProcessor id 自定义音频处理器,参看 ByteRTCAudioProcessor 。如果传入null,则不对 RTC SDK 采集得到的音频帧进行自定义处理。
format ByteRTCAudioFormat* 自定义音频参数格式,参看 ByteRTCAudioFormat,SDK 将按指定设置给出音频帧。

返回值 方法调用结果

注意 重复调用此接口时,仅最后一次调用生效。效果不会叠加。

pushExternalAudioFrame:

- (int)pushExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame;

推送外部音频数据。

传入参数

参数名 类型 说明
audioFrame ByteRTCAudioFrame* 音频数据帧,详见 ByteRTCAudioFrame

返回值 方法调用结果

注意

pullExternalAudioFrame:

- (int)pullExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame;

拉取外部音频数据。

传入参数

参数名 类型 说明
audioFrame ByteRTCAudioFrame* 音频数据帧,详见 ByteRTCAudioFrame

返回值 方法调用结果

注意

sendRoomMessage:

- (int)sendRoomMessage:(NSString * _Nonnull)message;

给房间内的所有其他用户发送文本消息。

传入参数

参数名 类型 说明
message NSString* 发送的文本消息内容
消息不超过 62KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

sendRoomBinaryMessage:

- (int)sendRoomBinaryMessage:(NSData * _Nonnull)message;

给房间内的所有其他用户发送二进制消息。

传入参数

参数名 类型 说明
message NSData* 用户发送的二进制广播消息
消息不超过 46KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

setBusinessId:

- (int)setBusinessId:(NSString* _Nullable)businessId;

设置业务标识参数。
可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。

传入参数

参数名 类型 说明
businessId NSString* 用户设置的自己的 businessId 值。businessId 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意

feedbackTypes:desc:

- (int)feedbackTypes:(NSArray* _Nullable)types desc:(NSString* _Nullable)desc;

通话结束,将用户反馈的问题上报到 RTC

传入参数

参数名 类型 说明
types NSArray* 预设问题列表,参看 ByteRTCProblemFeedbackOption
desc NSString* 预设问题以外的其他问题的具体描述

返回值

注意 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。

sendUserMessage:message:

- (int64_t)sendUserMessage:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message;

给房间内指定的用户发送文本消息(P2P)。

传入参数

参数名 类型 说明
uid NSString* 消息接收用户的 ID
message NSString* 发送的文本消息内容。
消息不超过 62KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

sendUserBinaryMessage:message:

- (int64_t)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;

给房间内指定的用户发送二进制消息(P2P)。

传入参数

参数名 类型 说明
uid NSString* 消息接收用户的 ID
message NSData* 发送的二进制消息内容
消息不超过 46KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

setRemoteAudioPlaybackVolume:volume:

- (void)setRemoteAudioPlaybackVolume:(NSString* _Nonnull)uid volume:(int)volume;

调节来自指定远端用户的音频播放音量,默认为 100。

传入参数

参数名 类型 说明
uid NSString* 音频来源的远端用户 ID
volume int 播放音量,调节范围:[0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

setPublishFallbackOption:

- (int)setPublishFallbackOption:(ByteRTCPublishFallbackOption)option;

设置发布的音视频流回退选项

传入参数

参数名 类型 说明
option ByteRTCPublishFallbackOption 本地发布的音视频流回退选项,详见枚举类型 ByteRTCPublishFallbackOption

返回值

注意

setSubscribeFallbackOption:

- (int)setSubscribeFallbackOption:(ByteRTCSubscribeFallbackOption)option;

设置订阅的音视频流回退选项

传入参数

参数名 类型 说明
option ByteRTCSubscribeFallbackOption 远端订阅的流回退处理选项,详见枚举类型 ByteRTCSubscribeFallbackOption

返回值

注意

setRemoteUserPriority:uid:

- (int)setRemoteUserPriority:(ByteRTCRemoteUserPriority)priority uid:(NSString *_Nonnull)uid;

设置用户优先级

传入参数

参数名 类型 说明
priority ByteRTCRemoteUserPriority 远端用户的优先级, 详见枚举类型 ByteRTCRemoteUserPriority
uid NSString* 远端用户的 ID

返回值

注意

setEncryptType:key:

- (void)setEncryptType:(ByteRTCEncryptType)encrypt_type key:(NSString * _Nonnull)key;

设置传输时使用内置加密的方式

传入参数

参数名 类型 说明
encrypt_type ByteRTCEncryptType 内置加密算法,详见 ByteRTCEncryptType
key NSString* 加密密钥,长度限制为 36 位,超出部分将会被截断

注意

setCustomizeEncryptHandler:

- (void)setCustomizeEncryptHandler:(id<ByteRTCEncryptHandler> _Nullable)handler;

设置自定义加密和解密方式 需要实现对应的加密和解密方法。详情参考 ByteRTCEncryptHandler

传入参数

参数名 类型 说明
handler id 自定义加密 handler,需要实现里面的加密和解密方法

注意

createRtcRoom:

- (ByteRTCRoom * _Nullable)createRtcRoom:(NSString * _Nonnull)roomId;

创建并获取一个 ByteRTCRoom 对象

传入参数

参数名 类型 说明
roomId NSString* 标识通话房间的房间 ID,最大长度为 128 字节的非空字符串。支持的字符集范围为:
• 26 个大写字母 A ~ Z
• 26 个小写字母 a ~ z
• 10 个数字 0 ~ 9
• 下划线 "_", at 符 "@", 减号 "-"
多房间模式下,调用创建房间接口后,请勿调用同样的 roomID 创建房间,否则会导致创建房间失败。

注意

publishScreen

- (void)publishScreen;

发布本地屏幕共享流。

注意

unpublishScreen

- (void)unpublishScreen;

取消发布屏幕流

注意

pushScreenCaptureFrame:time:rotation:

- (void)pushScreenCaptureFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(int)rotation;

推送外部屏幕采集帧

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime 每一帧的时间戳,单位 ms
rotation int 帧的旋转角度包含: 0, 90, 180, 270

注意 屏幕采集分为内部采集和外部采集,本方法属于外部采集。

startScreenSharingWithPreferredExtension:groupId:

- (int)startScreenSharingWithPreferredExtension:(NSString *_Nullable)extension groupId:(NSString *_Nonnull)groupId API_AVAILABLE(ios(12));

开始内部屏幕采集

传入参数

参数名 类型 说明
extension NSString* 传入 Broadcast Upload Extension 的 Bundle Id,用于在设置中优先展示 Extension
groupId NSString* App 和 Extension 应该归属于同一个 App Group,此处需要传入 Group Id。

返回值 0 :成功;

-1 :失败;

注意 1.屏幕采集分为内部采集和外部采集,本方法属于内部采集。 内部采集:由 SDK 进行屏幕采集和后续所有流程 外部采集:用户负责采集屏幕数据帧,通过接口提供给 SDK 2.调用该接口后远端能收到 rtcEngine:onFirstRemoteVideoFrameRendered:withFrameInfo: 和 rtcEngine:onStreamAdd: 事件。 3.内部采集时,外部不需要屏幕采集帧。

API_AVAILABLE

- (void)stopScreenSharing API_AVAILABLE(ios(12));

停止内部屏幕采集

注意 屏幕采集分为内部采集和外部采集,本方法属于内部采集。

startASR:handler:

- (void)startASR:(ByteRTCASRConfig *_Nonnull)asrConfig handler:(id<ByteRTCASREngineEventHandler> _Nonnull)handler ;

开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage: 事件回调给用户。

传入参数

参数名 类型 说明
handler id 语音识别服务使用状态回调,参看 ByteRTCASREngineEventHandler
asrConfig ByteRTCASRConfig* 校验信息,参看 ByteRTCASRConfig

stopASR

- (void)stopASR;

关闭语音识别服务

startFileRecording:withRecordingConfig:

- (int)startFileRecording:(ByteRTCStreamIndex)streamIndex withRecordingConfig:(ByteRTCRecordingConfig* _Nonnull)recordingConfig;

该方法将通话过程中的音视频数据录制到本地的文件中。

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 流属性,指定录制主流还是屏幕流,参看 ByteRTCStreamIndex
recordingConfig ByteRTCRecordingConfig* 本地录制参数配置,参看 ByteRTCRecordingConfig

返回值

注意

stopFileRecording:

- (void)stopFileRecording:(ByteRTCStreamIndex)streamIndex;

停止本地录制

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 流属性,指定停止主流或者屏幕流录制,参看 ByteRTCStreamIndex

注意

getAudioMixingManager

- (ByteRTCAudioMixingManager *_Nullable)getAudioMixingManager;

混音管理接口创建

返回值 混音管理实例,详见ByteRTCAudioMixingManager

getPositionAudioRender

- (ByteRTCPositionAudioRender *_Nullable)getPositionAudioRender;

获取位置音频接口实例,包括范围语音、空间语音等和位置相关的音频接口。

返回值 位置音频管理接口实例。如果返回 NULL,则表示不支持空间音频,详见 ByteRTCPositionAudioRender 。

注意

login:uid:

- (void)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid;

必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息

传入参数

参数名 类型 说明
token NSString* 动态密钥
用户登录必须携带的 Token,用于鉴权验证。
本 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
uid NSString* 用户 ID
用户 ID 在 appid的维度下是唯一的。

注意

logout

- (void)logout;

调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。

注意

updateLoginToken:

- (void)updateLoginToken:(NSString * _Nonnull)token;

更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtcEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token NSString* 更新的动态密钥

注意

setServerParams:url:

- (void)setServerParams:(NSString * _Nonnull)signature url:(NSString * _Nonnull)url;

设置业务服务器参数
客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。

传入参数

参数名 类型 说明
signature NSString* 动态签名
业务服务器会使用该签名对请求进行鉴权验证。
url NSString* 业务服务器的地址

注意

getPeerOnlineStatus:

- (void)getPeerOnlineStatus:(NSString * _Nonnull)peerUserId;

查询对端用户或本端用户的登录状态

传入参数

参数名 类型 说明
peerUserId NSString* 需要查询的用户 ID

注意

sendUserMessageOutsideRoom:message:

- (int64_t)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr;

给房间外指定的用户发送文本消息(P2P)

传入参数

参数名 类型 说明
userId NSString* 消息接收用户的 ID
messageStr NSString* 发送的文本消息内容
消息不超过 62KB。

返回值

注意

sendUserBinaryMessageOutsideRoom:message:

- (int64_t)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr;

给房间外指定的用户发送二进制消息(P2P)

传入参数

参数名 类型 说明
userId NSString* 消息接收用户的 ID
messageStr NSData* 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

sendServerMessage:

- (int64_t)sendServerMessage:(NSString * _Nonnull)messageStr;

客户端给业务服务器发送文本消息(P2Server)

传入参数

参数名 类型 说明
messageStr NSString* 发送的文本消息内容
消息不超过 62KB。

返回值

注意

sendServerBinaryMessage:

- (int64_t)sendServerBinaryMessage:(NSData * _Nonnull)messageStr;

客户端给业务服务器发送二进制消息(P2Server)

传入参数

参数名 类型 说明
messageStr NSData* 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

setScreenAudioSourceType:

- (void) setScreenAudioSourceType:(ByteRTCAudioSourceType)sourceType;

在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)

传入参数

参数名 类型 说明
sourceType ByteRTCAudioSourceType 屏幕音频输入源类型, 参看 ByteRTCAudioSourceType

注意

setScreenAudioStreamIndex:

- (void) setScreenAudioStreamIndex:(ByteRTCStreamIndex) index;

在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式

传入参数

参数名 类型 说明
index ByteRTCStreamIndex 混流方式,参看 ByteRTCStreamIndex
• ByteRTCStreamIndexMain: 将屏幕音频流和麦克风采集到的音频流混流
• ByteRTCStreamIndexScreen: 将屏幕音频流和麦克风采集到的音频流分为两路音频流

注意 你应该在 publishScreen 之前,调用此方法。否则,你将收到 rtcEngine:onWarning: 的报错:ByteRTCWarningSetScreenAudioStreamIndexFailed

pushScreenAudioFrame:

- (int) pushScreenAudioFrame:(ByteRTCAudioFrame* _Nonnull)audioFrame;

使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。

传入参数

参数名 类型 说明
audioFrame ByteRTCAudioFrame* 音频数据帧,参见 ByteRTCAudioFrame

返回值 方法调用结果

注意

setVideoSourceType:WithStreamIndex:

- (void)setVideoSourceType:(ByteRTCVideoSourceType)type WithStreamIndex:(ByteRTCStreamIndex)streamIndex;

设置向 SDK 输入的视频源

传入参数

参数名 类型 说明
type ByteRTCVideoSourceType 视频输入源类型,参看 ByteRTCVideoSourceType
streamIndex ByteRTCStreamIndex 视频流的属性,参看 ByteRTCStreamIndex

注意

setExternalVideoEncoderEventHandler:

- (void)setExternalVideoEncoderEventHandler:(id<ByteRTCExternalVideoEncoderEventHandler> _Nullable)handler;

注册自定义编码帧推送事件回调

传入参数

参数名 类型 说明
handler id 自定义编码帧回调类,参看 ByteRTCExternalVideoEncoderEventHandler

注意

pushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:

- (BOOL)pushExternalEncodedVideoFrame:(ByteRTCStreamIndex)streamIndex withVideoIndex:(NSInteger)videoIndex withEncodedVideoFrame:(ByteRTCEncodedVideoFrame* _Nonnull)videoFrame;

推送自定义编码后的视频流

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 需要推送的编码流的属性,参看 ByteRTCStreamIndex
videoIndex NSInteger 对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig:config: 设置了多路流,此处数量须与之保持一致
videoFrame ByteRTCEncodedVideoFrame* 编码流视频帧信息,参看 ByteRTCEncodedVideoFrame。

注意

setVideoDecoderConfig:withVideoDecoderConfig:

- (void)setVideoDecoderConfig:(ByteRTCRemoteStreamKey * _Nonnull)key withVideoDecoderConfig:(ByteRTCVideoDecoderConfig)config;

在订阅远端视频流之前,设置远端视频数据解码方式

传入参数

参数名 类型 说明
key ByteRTCRemoteStreamKey* 远端流信息,指定对哪一路视频流进行解码方式设置,参看 ByteRTCRemoteStreamKey。
config ByteRTCVideoDecoderConfig 视频解码方式,参看 ByteRTCVideoDecoderConfig。

注意

requestRemoteVideoKeyFrame:

- (void)requestRemoteVideoKeyFrame:(ByteRTCRemoteStreamKey * _Nonnull)key;

在订阅远端视频流之后,向远端请求关键帧

传入参数

参数名 类型 说明
key ByteRTCRemoteStreamKey* 远端流信息,参看 ByteRTCRemoteStreamKey。

注意

registerRemoteEncodedVideoFrameObserver:

- (void)registerRemoteEncodedVideoFrameObserver:(id<ByteRTCRemoteEncodedVideoFrameObserver> _Nullable)observer;

注册远端编码后视频数据回調。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 onRemoteEncodedVideoFrame:withEncodedVideoFrame: 回调

传入参数

参数名 类型 说明
observer id 远端编码后视频数据监测器,参看 ByteRTCRemoteEncodedVideoFrameObserver

注意

sendStreamSyncInfo:config:

- (int)sendStreamSyncInfo:(NSData* _Nonnull)data config:(ByteRTCStreamSycnInfoConfig * _Nonnull)config;

ByteRTCPositionAudioRender

@interface ByteRTCPositionAudioRender :NSObject

空间音频接口。

成员函数

返回 名称
void enableAudioSpatialRender:
int updatePosition:
int updateSelfOrientation:

函数说明

enableAudioSpatialRender:

-(void)enableAudioSpatialRender:(BOOL) enable;

开启或关闭空间音频效果。

传入参数

参数名 类型 说明
enable BOOL 空间音频效果开关,默认关闭。
• true: 开启空间音频效果;
• false: 关闭空间音频效果。

updatePosition:

-(int)updatePosition:(Position* _Nonnull) pos;

更新自己的位置坐标。

传入参数

参数名 类型 说明
pos Position* 三维坐标的值,默认为 [0, 0, 0]。根据需要,自行建立空间直角坐标系,并将需要使用空间音频功能的用户,都置于同一坐标系下。

返回值

updateSelfOrientation:

-(int)updateSelfOrientation:(HumanOrientation* _Nonnull) orientation;

更新自己的朝向。本地朝向的设置只影响本地听到的音频效果,不影响本地发出的音频效果。

传入参数

参数名 类型 说明
orientation HumanOrientation* 朝向信息,必须是单位向量。参看 HumanOrientation。当朝向的正方向使用默认值时,朝向的坐标系和位置信息使用的坐标系一致。此时,正前方朝向是:[1, 0, 0],正右方朝向是:[0, 1, 0],正上方朝向是:[0, 0, 1]。

返回值 0: 代表更新成功

注意 本地用户调用 enableAudioSpatialRender: 使用空间音频功能时,需要调用 updatePosition: 接口更新位置坐标后,才能调用此接口。

ByteRTCRoom

@interface ByteRTCRoom : NSObject

成员变量

类型 名称
id delegate

成员函数

返回 名称
void destroy
NSString* getRoomId
void setRtcRoomDelegate:
int joinRoomByToken:userInfo:roomConfig:
BOOL setUserVisibility:
ByteRTCUserRoleType clientRole
int leaveRoom
int renewToken:
int publish
int unpublish
int publishScreen:
int unpublishScreen
void subscribeUserStream:streamType:mediaType:videoConfig:
void setAudioVolumeIndicationInterval:
void pauseAllSubscribedStream:
void resumeAllSubscribedStream:
int startLiveTranscoding:observer:
int stopLiveTranscoding
int updateLiveTranscoding:
int setRemoteVideoCanvas:withIndex:withCanvas:
int64_t sendUserMessage:message:
int64_t sendUserBinaryMessage:message:
int64_t sendRoomMessage:
int64_t sendRoomBinaryMessage:

变量说明

delegate

@property(nonatomic, weak) id<ByteRTCRoomDelegate> _Nullable delegate;

函数说明

destroy

- (void)destroy;

销毁房间

注意 调用该接口后,SDK 会先执行退房操作,然后释放房间处理回调指针

getRoomId

- (NSString *_Nullable)getRoomId;

获取房间 ID

setRtcRoomDelegate:

- (void)setRtcRoomDelegate:(id<ByteRTCRoomDelegate> _Nullable)roomDelegate;

设置 ByteRTCRoomDelegate 代理。
通过设置事件句柄,可以监听此 ByteRTCRoom 对象对应的回调事件。

传入参数

参数名 类型 说明
roomDelegate id 参见 ByteRTCRoomDelegate

joinRoomByToken:userInfo:roomConfig:

- (int)joinRoomByToken:(NSString *_Nullable)token userInfo:(ByteRTCUserInfo *_Nonnull)userInfo roomConfig:(ByteRTCMultiRoomConfig *_Nonnull)roomConfig;

加入房间。
调用 createRtcRoom: 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。

传入参数

参数名 类型 说明
token NSString* 动态密钥,用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
userInfo ByteRTCUserInfo* 用户 ID。参看 ByteRTCUserInfo。
roomConfig ByteRTCMultiRoomConfig* 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 ByteRTCMultiRoomConfig。

返回值 方法调用结果。

注意

setUserVisibility:

- (BOOL)setUserVisibility:(BOOL)enable;

设置用户可见性。默认为可见。
通过对用户可见性进行设置,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
enable BOOL 设置用户是否对房间内其他用户可见:
• true: 可以被房间中的其他用户感知,且可以在房间内发布和订阅音视频流;
• false: 无法被房间中的其他用户感知,且只能在房间内订阅音视频流。

返回值 方法调用结果:

注意

clientRole

- (ByteRTCUserRoleType)clientRole;

获取当前用户角色。

返回值 当前用户角色,详见 ByteRTCUserRoleType 枚举类型。

leaveRoom

- (int)leaveRoom;

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

返回值 方法调用结果。

注意

renewToken:

- (int)renewToken:(NSString *_Nullable)token;

更新 Token。
用户调用 joinRoomByToken:userInfo:roomConfig: 方法加入房间时, 如果使用了过期的 Token 将导致加入房间失败,并会收到 rtcEngine:onJoinRoomResult:withUid:errorCode:joinType:elapsed: 回调, 回调错误码为 ByteRTCErrorCode 中的 ByteRTCErrorCodeInvalidToken。 此时需要重新获取 Token,并调用此方法更新 Token。更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token NSString* 更新的动态密钥。

返回值 方法调用结果。

注意 Token 过期时,如果已经加入房间成功,则不会受到影响。Token 过期的错误会在下一次使用过期的 Token 加入房间时,或因本地网络状况不佳导致断网重新连入房间时通知用户。

publish

- (int)publish;

将本端音视频流发布到此房间。

注意

unpublish

- (int)unpublish;

停止将本端音视频流发布到此房间。

注意

publishScreen:

- (int)publishScreen:(ByteRTCScreenParam * _Nonnull)param;

发布本地屏幕视频流到此房间。(外部采集)
调用此方法后,你还需要周期性调用 pushScreenCaptureFrame:time:rotation: 方法, 将需要发送的屏幕数据推送给 SDK。

传入参数

参数名 类型 说明
param ByteRTCScreenParam* 屏幕视频流编码参数,详见 ByteRTCScreenParam

注意

unpublishScreen

- (int)unpublishScreen;

停止发布本地屏幕共享流到房间。

注意

subscribeUserStream:streamType:mediaType:videoConfig:

- (void)subscribeUserStream:(NSString *_Nonnull)userId streamType:(ByteRTCStreamIndex)streamType mediaType:(ByteRTCSubscribeMediaType)mediaType videoConfig:(ByteRTCSubscribeVideoConfig *_Nonnull)videoConfig;

订阅房间内指定的远端音视频流。
无论是自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名 类型 说明
userId NSString* 指定订阅的远端发布音视频流的用户 ID 。
streamType ByteRTCStreamIndex 流属性,用于指定订阅主流/屏幕流,参看 ByteRTCStreamIndex 。
mediaType ByteRTCSubscribeMediaType 媒体类型,用于指定订阅音/视频,参看 ByteRTCSubscribeMediaType。
videoConfig ByteRTCSubscribeVideoConfig* 视频订阅配置,参看 ByteRTCSubscribeVideoConfig。

注意

setAudioVolumeIndicationInterval:

- (void)setAudioVolumeIndicationInterval:(NSInteger)interval;

开启/关闭房间内音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 rtcEngine:onAudioVolumeIndication:totalRemoteVolume:。

传入参数

参数名 类型 说明
interval NSInteger 收到音量提示回调的时间间隔
• ≤ 0:禁用音量提示功能。
• > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。
建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。

pauseAllSubscribedStream:

- (void)pauseAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

暂停接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType ByteRTCPauseResumControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType

注意

resumeAllSubscribedStream:

- (void)resumeAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType ByteRTCPauseResumControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType

注意

startLiveTranscoding:observer:

- (int)startLiveTranscoding:(ByteRTCLiveTranscoding *_Nullable)transcoding observer:(id<LiveTranscodingDelegate> _Nullable)observer;

开启转推直播,并设置视频视图布局、音频属性等参数

传入参数

参数名 类型 说明
transcoding ByteRTCLiveTranscoding* 客户端转推参数,详见 ByteRTCLiveTranscoding
observer id 端云一体合流转推观察者。
• 合流转推的状态和方式会通过回调上报 RTC Engine。
• 只有房间模式为直播模式,且用户角色为主播的用户才能调用此方法。
• 启用端云一体合流转推时,回调合流完成的音视频流和 SEI 信息给 App。详见 LiveTranscodingDelegate 数据类型。

注意

stopLiveTranscoding

- (int)stopLiveTranscoding;

停止转推直播。

updateLiveTranscoding:

- (int)updateLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding;

更新转推直播参数。
启用转推直播功能后,你可以使用此方法更新合流转推功能配置参数。

传入参数

参数名 类型 说明
transcoding ByteRTCLiveTranscoding* 服务端转推配置参数,详见 ByteRTCLiveTranscoding 。

返回值 方法调用结果。

setRemoteVideoCanvas:withIndex:withCanvas:

- (int)setRemoteVideoCanvas:(NSString * _Nonnull)uid withIndex:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;

渲染来自指定远端用户 uid 的视频流时,设置使用的视图和渲染模式。
如果需要解除视频的绑定视图,把 canvas 设置为空。

传入参数

参数名 类型 说明
uid NSString* 视频来源的远端用户 ID
streamIndex ByteRTCStreamIndex 视频流属性,参看 ByteRTCStreamIndex
canvas ByteRTCVideoCanvas* 视图信息和渲染模式,参看 ByteRTCVideoCanvas

返回值

注意

sendUserMessage:message:

- (int64_t)sendUserMessage:(NSString *_Nonnull)userId message:(NSString *_Nonnull)message;

给房间内指定的用户发送文本消息(P2P)。

传入参数

参数名 类型 说明
userId NSString* 消息接收用户的 ID
message NSString* 发送的文本消息内容。
消息不超过 62KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

sendUserBinaryMessage:message:

- (int64_t)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;

给房间内指定的用户发送二进制消息(P2P)。

传入参数

参数名 类型 说明
uid NSString* 消息接收用户的 ID
message NSData* 发送的二进制消息内容
消息不超过 46KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

sendRoomMessage:

- (int64_t)sendRoomMessage:(NSString *_Nonnull)message;

给房间内的所有其他用户发送文本消息。

传入参数

参数名 类型 说明
message NSString* 发送的文本消息内容。
消息不超过 62KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意

sendRoomBinaryMessage:

- (int64_t)sendRoomBinaryMessage:(NSData * _Nonnull)message;

给房间内的所有其他用户发送二进制消息。

传入参数

参数名 类型 说明
message NSData* 用户发送的二进制广播消息
消息不超过 46KB。

返回值 这次发送消息的编号,从 1 开始递增。

注意