You need to enable JavaScript to run this app.
文档中心
视频直播

视频直播

复制全文
下载 pdf
SDK API 参考
回调
复制全文
下载 pdf
回调

VeLivePlayerObserver
@protocol VeLivePlayerObserver <NSObject>

播放事件回调。

成员函数

返回

名称

void

onError:error:

void

onInfo:info:

void

onFirstVideoFrameRender:isFirstFrame:

void

onFirstAudioFrameRender:isFirstFrame:

void

onStallStart:

void

onStallEnd:

void

onVideoRenderStall:stallTime:

void

onAudioRenderStall:stallTime:

void

onResolutionSwitch:resolution:error:reason:

void

onVideoSizeChanged:width:height:

void

onReceiveSeiMessage:message:

void

onReceiveBinarySeiMessage:message:

void

onMainBackupSwitch:streamType:error:

void

onStreamFormatSwitch:fromStreamFormat:toStreamFormat:error:extraInfo:

void

onPlayerStatusUpdate:status:

void

onStatistics:statistics:

void

onSnapshotComplete:image:

void

onRenderVideoFrame:videoFrame:

void

onRenderAudioFrame:audioFrame:

void

onStreamFailedOpenSuperResolution:error:

nullable NSData*

getDrmResourceLoaderCertificateData:

nullable NSString*

getDrmResourceLoaderLicenseUrl:

函数说明

onError:error:

- (void)onError:(TVLManager *_Nonnull)player error:(VeLivePlayerError *_Nonnull)error;

播放器错误信息回调,播放器出现错误时,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

error

VeLivePlayerError*

错误信息,详情请参见 VeLivePlayerError

onInfo:info:

- (void)onInfo:(TVLManager *_Nonnull)player info:(VeLivePlayerError *_Nonnull)info;

播放器信息回调。在播放器有内部错误时,SDK 会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该回调的播放器对象。详见 TVLManager

info

VeLivePlayerError*

播放器信息。详见 VeLivePlayerError

onFirstVideoFrameRender:isFirstFrame:

- (void)onFirstVideoFrameRender:(TVLManager *_Nonnull)player isFirstFrame:(BOOL)isFirstFrame;

视频首帧渲染事件回调。视频首帧渲染成功,或播放过程中发生重试,重试后的第一个视频帧渲染成功,均会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

isFirstFrame

BOOL

渲染成功的是否为视频首帧。

  • YES:视频首帧;
  • NO:重试后第一个视频帧。

onFirstAudioFrameRender:isFirstFrame:

- (void)onFirstAudioFrameRender:(TVLManager *_Nonnull)player isFirstFrame:(BOOL)isFirstFrame;

音频首帧渲染事件回调。音频首帧渲染成功,或播放过程中发生重试,重试后的第一个音频帧渲染成功,均会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

isFirstFrame

BOOL

渲染成功的是否为音频首帧。

  • YES:音频首帧;
  • NO:重试后第一个音频帧。

onStallStart:

- (void)onStallStart:(TVLManager *_Nonnull)player;

播放卡顿开始回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象

onStallEnd:

- (void)onStallEnd:(TVLManager *_Nonnull)player;

播放卡顿结束回调。音频缓冲区达到起播条件且开始播放后,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

onVideoRenderStall:stallTime:

- (void)onVideoRenderStall:(TVLManager *_Nonnull)player stallTime:(int64_t)stallTime;

视频渲染卡顿回调。视频渲染发生卡顿时,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

stallTime

int64_t

视频渲染卡顿时长,单位为 ms。

onAudioRenderStall:stallTime:

- (void)onAudioRenderStall:(TVLManager *_Nonnull)player stallTime:(int64_t)stallTime;

音频渲染卡顿回调。音频渲染发生卡顿时,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

stallTime

int64_t

音频渲染卡顿时长,单位为 ms。

onResolutionSwitch:resolution:error:reason:

- (void)onResolutionSwitch:(TVLManager *_Nonnull)player resolution:(VeLivePlayerResolution)resolution error:(VeLivePlayerError *)error reason:(VeLivePlayerResolutionSwitchReason)reason;

清晰度档位发生变化回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

resolution

VeLivePlayerResolution

切换后的清晰度档位,详情请参见 VeLivePlayerResolution

error

VeLivePlayerError*

切换清晰度档位时,是否发生错误,详情请参见 VeLivePlayerError

reason

VeLivePlayerResolutionSwitchReason

清晰度档位切换的原因,详情请参见 VeLivePlayerResolutionSwitchReason

onVideoSizeChanged:width:height:

- (void)onVideoSizeChanged:(TVLManager *_Nonnull)player width:(int)width height:(int)height;

视频分辨率变化回调。视频大小发生变化时,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

width

int

变化后的视频宽度,单位为 px。

height

int

变化后的视频高度,单位为 px。

onReceiveSeiMessage:message:

- (void)onReceiveSeiMessage:(TVLManager *_Nonnull)player message:(NSString *_Nonnull)message;

字符串 SEI 消息回调,当播放器 SDK 接收到 SEI 消息时,触发该回调。需要开启 VeLivePlayerConfiguration 中 enableSei 属性。当 enableBinarySei 属性开启时,字符串 SEI 消息将不再发送。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

message

NSString*

SEI 信息。

onReceiveBinarySeiMessage:message:

- (void)onReceiveBinarySeiMessage:(TVLManager *_Nonnull)player message:(NSData *_Nonnull)message;

二级制 SEI 消息回调,当播放器 SDK 接收到 SEI 消息时,触发该回调。需要开启 VeLivePlayerConfiguration 中 enableBinarySei 属性。当 enableBinarySei 属性开启时,字符串 SEI 消息将不再发送。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

message

NSData*

SEI 信息。

onMainBackupSwitch:streamType:error:

- (void)onMainBackupSwitch:(TVLManager *_Nonnull)player streamType:(VeLivePlayerStreamType)streamType error:(VeLivePlayerError *)error;

主备流切换回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

streamType

VeLivePlayerStreamType

切换后的流类型为主路流或备路流,详情请参见 VeLivePlayerStreamType

error

VeLivePlayerError*

触发主备流切换的原因,详情请参见 VeLivePlayerError

onStreamFormatSwitch:fromStreamFormat:toStreamFormat:error:extraInfo:

- (void)onStreamFormatSwitch:(TVLManager *_Nonnull)player fromStreamFormat:(VeLivePlayerFormat)fromStreamType toStreamFormat:(VeLivePlayerFormat)toStreamType error:(VeLivePlayerError *)error extraInfo:(NSDictionary *)extraInfo;

当播放器切换流的格式时,SDK 会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该回调的播放器对象。详见 TVLManager

fromStreamType

VeLivePlayerFormat

切换前的流格式。详见 VeLivePlayerFormat

toStreamType

VeLivePlayerFormat

切换后的流格式。详见 VeLivePlayerFormat

error

VeLivePlayerError*

触发流格式切换的原因。详见 VeLivePlayerError

extraInfo

NSDictionary*

额外信息,包含切换相关的详细数据。

onPlayerStatusUpdate:status:

- (void)onPlayerStatusUpdate:(TVLManager *_Nonnull)player status:(VeLivePlayerStatus)status;

播放状态发生变化时,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

status

VeLivePlayerStatus

当前播放器的状态,详情请参见 VeLivePlayerStatus

onStatistics:statistics:

- (void)onStatistics:(TVLManager *_Nonnull)player statistics:(VeLivePlayerStatistics *_Nonnull)statistics;

播放信息周期性回调。播放器 SDK 会周期性地回调本方法,您可以通过本方法获取当前播放器的播放地址、码率和帧率等信息。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

statistics

VeLivePlayerStatistics*

播放器周期性回调的统计信息,详情请参见 VeLivePlayerStatistics

onSnapshotComplete:image:

- (void)onSnapshotComplete:(TVLManager *_Nonnull)player image:(UIImage *_Nonnull)image;

截图成功回调。当播放器调用 snapshot 截图成功后,触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

image

UIImage*

截图的 UIImage 对象。

onRenderVideoFrame:videoFrame:

- (void)onRenderVideoFrame:(TVLManager *_Nonnull)player videoFrame:(VeLivePlayerVideoFrame *_Nonnull)videoFrame;

视频帧回调。调用 enableVideoFrameObserver:pixelFormat:bufferType: 开启视频帧解析回调后,当播放器成功解码视频帧时,会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

videoFrame

VeLivePlayerVideoFrame*

视频帧数据,包含像素格式、封装格式、视频宽高等信息,详情请参见 VeLivePlayerVideoFrame

注意
如果自定义渲染使用纹理格式,建议在视频帧回调线程中执行渲染操作。

onRenderAudioFrame:audioFrame:

- (void)onRenderAudioFrame:(TVLManager *_Nonnull)player audioFrame:(VeLivePlayerAudioFrame *_Nonnull)audioFrame;

音频帧回调。调用 enableAudioFrameObserver:enableRendering:开启音频帧解析回调后,当播放器成功解码音频帧时,会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

audioFrame

VeLivePlayerAudioFrame*

音频帧数据,详情请参见 VeLivePlayerAudioFrame

注意
回调的音频帧数据为 float32 格式,大端字节序存储。

onStreamFailedOpenSuperResolution:error:

- (void)onStreamFailedOpenSuperResolution:(TVLManager *_Nonnull)player error:(VeLivePlayerError *_Nullable)error;

超分开启失败。调用 setEnableSuperResolution:开启超分后,当播放器不支持超分开启或者超分处理出错时,会触发此回调。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

error

VeLivePlayerError*

开启超分失败的原因,错误码请参见 VeLivePlayerErrorCode

getDrmResourceLoaderCertificateData:

- (nullable NSData *)getDrmResourceLoaderCertificateData:(nonnull TVLManager *_Nonnull)player;

您需要在此回调中返回 FairPlay 证书的 NSData 数据。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

getDrmResourceLoaderLicenseUrl:

- (nullable NSString *)getDrmResourceLoaderLicenseUrl:(nonnull TVLManager *_Nonnull)player;

您需要在此回调中返回 DRM license 的 URL。
传入参数

参数名

类型

说明

player

TVLManager*

触发该事件回调的播放器对象。

最近更新时间:2026.04.07 23:17:22
这个页面对您有帮助吗?
有用
有用
无用
无用