LVRTCEngineDelegate Protocol Reference
| Conforms to | NSObject | 
|---|---|
| Declared in | LVRTCEngine.h | 
– OnRoomReconnected
required method
	房间重连成功通知,SDK 在网络断开和恢复时会自动进行重连,重连结果通过该回调通知 APP
- (void)OnRoomReconnectedDeclared In
LVRTCEngine.h
– OnEnterRoomComplete:users:
required method
	加入房间成功的回调
- (void)OnEnterRoomComplete:(LVErrorCode)code users:(nullable NSArray<LVUser*> *)usersParameters
code | 
						加入房间是否成功错误码  | 
					
|---|---|
users | 
						用户列表,如果房间中有用户存在,该列表会自动生效  | 
					
Declared In
LVRTCEngine.h
– OnExitRoomComplete
required method
	退出房间完成,异常退出和用户主动调用 logoutRoom 方法会触发该回调方法
- (void)OnExitRoomCompleteDeclared In
LVRTCEngine.h
– OnRoomDisconnected:
required method
	房间断开的通知,网络异常时 SDK 会自动进行重连,90 秒如果重连失败会触发该方法回调
- (void)OnRoomDisconnected:(LVErrorCode)codeParameters
code | 
						错误码  | 
					
|---|
Declared In
LVRTCEngine.h
– OnAddRemoter:
required method
	有成员加入的通知
- (void)OnAddRemoter:(LVUser *)userParameters
user | 
						成员列表  | 
					
|---|
Declared In
LVRTCEngine.h
– OnDeleteRemoter:
required method
	有成员离开的通知
- (void)OnDeleteRemoter:(NSString *)uidParameters
uid | 
						离开用户 ID  | 
					
|---|
Declared In
LVRTCEngine.h
– OnMixComplete:
required method
	远端混流完成的回调,用户可以通过调用混乱方法在远端进行音视频混流,参考 mixStream
- (void)OnMixComplete:(LVErrorCode)codeParameters
code | 
						混流结果  | 
					
|---|
Declared In
LVRTCEngine.h
– OnAudioData:audio_data:bits_per_sample:sample_rate:number_of_channels:number_of_frames:
required method
	单路音频流回调
- (void)OnAudioData:(NSString *)uid audio_data:(const void *)audio_data bits_per_sample:(int)bits_per_sample sample_rate:(int)sample_rate number_of_channels:(size_t)number_of_channels number_of_frames:(size_t)number_of_framesParameters
uid | 
						该路音频的用户 ID  | 
					
|---|---|
audio_data | 
						音频数据  | 
					
bits_per_sample | 
						PCM 位深  | 
					
sample_rate | 
						采样率  | 
					
number_of_channels | 
						通道数  | 
					
number_of_frames | 
						帧数量  | 
					
Declared In
LVRTCEngine.h
– OnAudioMixStream:samples:nchannel:samplesPerChannel:flag:
required method
	混音录音数据回调,该方法需要打开录音功能才会触发回调 setAudioRecordFlag:
- (void)OnAudioMixStream:(const int16_t *)data samples:(int)samples nchannel:(int)nchannel samplesPerChannel:(int)samplesPerChannel flag:(LVAudioRecordType)flagParameters
data | 
						pcm 数据  | 
					
|---|---|
samples | 
						数据长度  | 
					
nchannel | 
						通道数据  | 
					
samplesPerChannel | 
						每声道采样数  | 
					
flag | 
						类型  | 
					
Declared In
LVRTCEngine.h
– OnPublishQualityUpdate:
required method
	发布资源质量状态变化的通知,SDK 内部会定时统计推流的质量信息,APP 可以实现该方法获取推流的视频质量信息统计,回调的频率可以通过 +setPublishQualityMonitorCycle 进行设置
- (void)OnPublishQualityUpdate:(LVVideoStatistic *)qualityParameters
quality | 
						质量信息  | 
					
|---|
Declared In
LVRTCEngine.h
– OnPlayQualityUpate:userId:
required method
	播放质量变化的通知,SDK 内部会定时统计拉流质量信息,APP 可以实现该方法获取拉流的视频质量信息统计,回调的频率可以通过 +setPlayQualityMonitorCycle 进行设置
- (void)OnPlayQualityUpate:(LVVideoStatistic *)quality userId:(NSString *)userIdParameters
quality | 
						质量信息  | 
					
|---|---|
userId | 
						用户 ID  | 
					
Declared In
LVRTCEngine.h
– OnPublishStateUpdate:
required method
	发布资源状态变更的通知,调用 startPublishing 之后会触发该方法回调,发布资源状态的变更会通过该方法进行通知
- (void)OnPublishStateUpdate:(LVErrorCode)codeParameters
code | 
						状态码  | 
					
|---|
Declared In
LVRTCEngine.h
– OnPlayStateUpdate:userId:
required method
	播放状态变化的通知,调用 startPlayingStream: 方法之后,播放状态的变更会通过该方法进行通知
- (void)OnPlayStateUpdate:(LVErrorCode)code userId:(NSString *)userIdParameters
code | 
						状态码  | 
					
|---|---|
userId | 
						用户 ID  | 
					
Declared In
LVRTCEngine.h
– OnAudioVolumeUpdate:
required method
	远端用户音量变化的通知,该回调通需要调用打开音量变化监听方法才会生效 startSoundLevelMonitor,该回调频率可以调用 startSoundLevelMonitor:
- (void)OnAudioVolumeUpdate:(NSArray<LVAudioVolume*> *)soundLevelsParameters
soundLevels | 
						远端用户音量信息  | 
					
|---|
Declared In
LVRTCEngine.h
– OnMediaSideInfoInPublishVideoFrame:
	是否需要在视频帧上附加其他媒体信息
- (NSString *)OnMediaSideInfoInPublishVideoFrame:(NSUInteger)timestampParameters
timestamp | 
						当前要发送数据帧的时间戳  | 
					
|---|
Return Value
请返回要随当前视频帧发送的附加数据 (字符串最长长度 24 个字符)
Declared In
LVRTCEngine.h
– OnDrawFrame:uid:sei:
	收到远端视频数据回调,如果为 SDK 设置了渲染视图,SDK 内部会自动将该视频帧渲染出来
- (int64_t)OnDrawFrame:(CVPixelBufferRef)pixelBuffer uid:(NSString *)uid sei:(NSString *)seiParameters
pixelBuffer | 
						已解码的视频数据  | 
					
|---|---|
uid | 
						用户 ID  | 
					
sei | 
						随视频数据携带的附加数据信息  | 
					
Return Value
建议返回当前渲染完成的时间戳,用以统计渲染延迟
Discussion
注:如果用户实现该接口,则 SDK 内部的远端视频渲染会自动实现,渲染完全由外部进行实现
Declared In
LVRTCEngine.h
– OnCaptureVideoFrame:
	SDK 内部采集数据回调
- (CMSampleBufferRef)OnCaptureVideoFrame:(CMSampleBufferRef)videoFrameParameters
videoFrame | 
						视频原始数据  | 
					
|---|
Return Value
处理后的视频数据,SDK 内部不会调用 CFRetain 增加引用计数, 会调用 CFRelease 减少引用计数, 视频开发者创建的视频对象
Declared In
LVRTCEngine.h
– OnKickOff:roomId:
	用户被踢出房间
- (void)OnKickOff:(NSInteger)reason roomId:(NSString *)roomIdParameters
reason | 
						被踢原因  | 
					
|---|---|
roomId | 
						房间号  | 
					
Declared In
LVRTCEngine.h
– AudioMixerCurrentPlayingTime:
	混音播放器当前播放时长
- (void)AudioMixerCurrentPlayingTime:(int)time_msParameters
time_ms | 
						播放时长  | 
					
|---|
Declared In
LVRTCEngine.h
– AudioMixerPlayerDidFinished
	混音播放器当前音频播放结束
- (void)AudioMixerPlayerDidFinishedDeclared In
LVRTCEngine.h
– OnReceivedFirstVideoFrame:streamId:
	收到视频首帧回调通知事件
- (void)OnReceivedFirstVideoFrame:(NSString *)userId streamId:(NSString *)streamIdParameters
userId | 
						视频发送者用户 ID  | 
					
|---|---|
streamId | 
						流 ID,默认为空字符串,如果使用自定义视频流时为自定义视频流对应的流名称  | 
					
Declared In
LVRTCEngine.h
– OnReceivedFirstAudioFrame:streamId:
	收到视频首帧回调通知事件
- (void)OnReceivedFirstAudioFrame:(NSString *)userId streamId:(NSString *)streamIdParameters
userId | 
						视频发送者用户 ID  | 
					
|---|---|
streamId | 
						流 ID,默认为空字符串,如果使用自定义视频流时为自定义视频流对应的流名称  | 
					
Declared In
LVRTCEngine.h