LVRTCEngineDelegate Protocol Reference

Conforms to NSObject
Declared in LVRTCEngine.h

Overview

音视频引擎代理回调方法

– OnRoomReconnected required method

房间重连成功通知,SDK 在网络断开和恢复时会自动进行重连,重连结果通过该回调通知 APP

- (void)OnRoomReconnected

Declared In

LVRTCEngine.h

– OnEnterRoomComplete:users: required method

加入房间成功的回调

- (void)OnEnterRoomComplete:(LVErrorCode)code users:(nullable NSArray<LVUser*> *)users

Parameters

code

加入房间是否成功错误码

users

用户列表,如果房间中有用户存在,该列表会自动生效

Declared In

LVRTCEngine.h

– OnExitRoomComplete required method

退出房间完成,异常退出和用户主动调用 logoutRoom 方法会触发该回调方法

- (void)OnExitRoomComplete

Declared In

LVRTCEngine.h

– OnRoomDisconnected: required method

房间断开的通知,网络异常时 SDK 会自动进行重连,90 秒如果重连失败会触发该方法回调

- (void)OnRoomDisconnected:(LVErrorCode)code

Parameters

code

错误码

Declared In

LVRTCEngine.h

– OnAddRemoter: required method

有成员加入的通知

- (void)OnAddRemoter:(LVUser *)user

Parameters

user

成员列表

Declared In

LVRTCEngine.h

– OnDeleteRemoter: required method

有成员离开的通知

- (void)OnDeleteRemoter:(NSString *)uid

Parameters

uid

离开用户 ID

Declared In

LVRTCEngine.h

– OnMixComplete: required method

远端混流完成的回调,用户可以通过调用混乱方法在远端进行音视频混流,参考 mixStream

- (void)OnMixComplete:(LVErrorCode)code

Parameters

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_frames

Parameters

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)flag

Parameters

data

pcm 数据

samples

数据长度

nchannel

通道数据

samplesPerChannel

每声道采样数

flag

类型

Declared In

LVRTCEngine.h

– OnPublishQualityUpdate: required method

发布资源质量状态变化的通知,SDK 内部会定时统计推流的质量信息,APP 可以实现该方法获取推流的视频质量信息统计,回调的频率可以通过 +setPublishQualityMonitorCycle 进行设置

- (void)OnPublishQualityUpdate:(LVVideoStatistic *)quality

Parameters

quality

质量信息

Declared In

LVRTCEngine.h

– OnPlayQualityUpate:userId: required method

播放质量变化的通知,SDK 内部会定时统计拉流质量信息,APP 可以实现该方法获取拉流的视频质量信息统计,回调的频率可以通过 +setPlayQualityMonitorCycle 进行设置

- (void)OnPlayQualityUpate:(LVVideoStatistic *)quality userId:(NSString *)userId

Parameters

quality

质量信息

userId

用户 ID

Declared In

LVRTCEngine.h

– OnPublishStateUpdate: required method

发布资源状态变更的通知,调用 startPublishing 之后会触发该方法回调,发布资源状态的变更会通过该方法进行通知

- (void)OnPublishStateUpdate:(LVErrorCode)code

Parameters

code

状态码

Declared In

LVRTCEngine.h

– OnPlayStateUpdate:userId: required method

播放状态变化的通知,调用 startPlayingStream: 方法之后,播放状态的变更会通过该方法进行通知

- (void)OnPlayStateUpdate:(LVErrorCode)code userId:(NSString *)userId

Parameters

code

状态码

userId

用户 ID

Declared In

LVRTCEngine.h

– OnAudioVolumeUpdate: required method

远端用户音量变化的通知,该回调通需要调用打开音量变化监听方法才会生效 startSoundLevelMonitor,该回调频率可以调用 startSoundLevelMonitor:

- (void)OnAudioVolumeUpdate:(NSArray<LVAudioVolume*> *)soundLevels

Parameters

soundLevels

远端用户音量信息

Declared In

LVRTCEngine.h

– OnMediaSideInfoInPublishVideoFrame:

是否需要在视频帧上附加其他媒体信息

- (NSString *)OnMediaSideInfoInPublishVideoFrame:(NSUInteger)timestamp

Parameters

timestamp

当前要发送数据帧的时间戳

Return Value

请返回要随当前视频帧发送的附加数据 (字符串最长长度 24 个字符)

Declared In

LVRTCEngine.h

– OnDrawFrame:uid:sei:

收到远端视频数据回调,如果为 SDK 设置了渲染视图,SDK 内部会自动将该视频帧渲染出来

- (int64_t)OnDrawFrame:(CVPixelBufferRef)pixelBuffer uid:(NSString *)uid sei:(NSString *)sei

Parameters

pixelBuffer

已解码的视频数据

uid

用户 ID

sei

随视频数据携带的附加数据信息

Return Value

建议返回当前渲染完成的时间戳,用以统计渲染延迟

Discussion

注:如果用户实现该接口,则 SDK 内部的远端视频渲染会自动实现,渲染完全由外部进行实现

Declared In

LVRTCEngine.h

– OnCaptureVideoFrame:

SDK 内部采集数据回调

- (CMSampleBufferRef)OnCaptureVideoFrame:(CMSampleBufferRef)videoFrame

Parameters

videoFrame

视频原始数据

Return Value

处理后的视频数据,SDK 内部不会调用 CFRetain 增加引用计数, 会调用 CFRelease 减少引用计数, 视频开发者创建的视频对象

Declared In

LVRTCEngine.h

– OnKickOff:roomId:

用户被踢出房间

- (void)OnKickOff:(NSInteger)reason roomId:(NSString *)roomId

Parameters

reason

被踢原因

roomId

房间号

Declared In

LVRTCEngine.h

– AudioMixerCurrentPlayingTime:

混音播放器当前播放时长

- (void)AudioMixerCurrentPlayingTime:(int)time_ms

Parameters

time_ms

播放时长

Declared In

LVRTCEngine.h

– AudioMixerPlayerDidFinished

混音播放器当前音频播放结束

- (void)AudioMixerPlayerDidFinished

Declared In

LVRTCEngine.h

– OnReceivedFirstVideoFrame:streamId:

收到视频首帧回调通知事件

- (void)OnReceivedFirstVideoFrame:(NSString *)userId streamId:(NSString *)streamId

Parameters

userId

视频发送者用户 ID

streamId

流 ID,默认为空字符串,如果使用自定义视频流时为自定义视频流对应的流名称

Declared In

LVRTCEngine.h

– OnReceivedFirstAudioFrame:streamId:

收到视频首帧回调通知事件

- (void)OnReceivedFirstAudioFrame:(NSString *)userId streamId:(NSString *)streamId

Parameters

userId

视频发送者用户 ID

streamId

流 ID,默认为空字符串,如果使用自定义视频流时为自定义视频流对应的流名称

Declared In

LVRTCEngine.h