You need to enable JavaScript to run this app.
导航

回调

最近更新时间2024.04.19 14:57:37

首次发布时间2023.03.31 11:23:06

VeLivePlayerObserver
@protocol VeLivePlayerObserver <NSObject>

播放事件回调。

成员函数

返回名称
voidonError:error:
voidonFirstVideoFrameRender:isFirstFrame:
voidonFirstAudioFrameRender:isFirstFrame:
voidonStallStart:
voidonStallEnd:
voidonVideoRenderStall:stallTime:
voidonAudioRenderStall:stallTime:
voidonResolutionSwitch:resolution:error:reason:
voidonVideoSizeChanged:width:height:
voidonReceiveSeiMessage:message:
voidonMainBackupSwitch:streamType:error:
voidonPlayerStatusUpdate:status:
voidonStatistics:statistics:
voidonSnapshotComplete:image:
voidonRenderVideoFrame:videoFrame:
voidonRenderAudioFrame:audioFrame:
voidonStreamFailedOpenSuperResolution:error:
NSData *getDrmResourceLoaderCertificateData:
NSString *getDrmResourceLoaderLicenseUrl:

函数说明

onError:error:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
errorVeLivePlayerError *错误信息,详情请参见 VeLivePlayerError

onFirstVideoFrameRender:isFirstFrame:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
isFirstFrameBOOL渲染成功的是否为视频首帧。
  • YES:视频首帧;
  • NO:重试后第一个视频帧。

onFirstAudioFrameRender:isFirstFrame:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
isFirstFrameBOOL渲染成功的是否为音频首帧。
  • YES:音频首帧;
  • NO:重试后第一个音频帧。

onStallStart:

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

播放卡顿开始回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象

onStallEnd:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。

onVideoRenderStall:stallTime:

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

视频渲染卡顿回调。视频渲染发生卡顿时,触发此回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
stallTimeint64_t视频渲染卡顿时长,单位为 ms。

onAudioRenderStall:stallTime:

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

音频渲染卡顿回调。音频渲染发生卡顿时,触发此回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
stallTimeint64_t音频渲染卡顿时长,单位为 ms。

onResolutionSwitch:resolution:error:reason:

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

清晰度档位发生变化回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
resolutionVeLivePlayerResolution切换后的清晰度档位,详情请参见 VeLivePlayerResolution
errorVeLivePlayerError *切换清晰度档位时,是否发生错误,详情请参见 VeLivePlayerError
reasonVeLivePlayerResolutionSwitchReason清晰度档位切换的原因,详情请参见 VeLivePlayerResolutionSwitchReason

onVideoSizeChanged:width:height:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
widthint变化后的视频宽度,单位为 px。
heightint变化后的视频高度,单位为 px。

onReceiveSeiMessage:message:

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

SEI 信息回调。当您调用 setConfig: 开启 SEI 信息回调且播放器 SDK 接收到 SEI 信息时,触发此回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
messageNSString *SEI 信息。

onMainBackupSwitch:streamType:error:

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

主备流切换回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
streamTypeVeLivePlayerStreamType切换后的流类型为主路流或备路流,详情请参见 VeLivePlayerStreamType
errorVeLivePlayerError *触发主备流切换的原因,详情请参见 VeLivePlayerError

onPlayerStatusUpdate:status:

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

播放状态发生变化时,触发此回调。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
statusVeLivePlayerStatus当前播放器的状态,详情请参见 VeLivePlayerStatus

onStatistics:statistics:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
statisticsVeLivePlayerStatistics *播放器周期性回调的统计信息,详情请参见 VeLivePlayerStatistics

onSnapshotComplete:image:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
imageUIImage *截图的 UIImage 对象。

onRenderVideoFrame:videoFrame:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
videoFrameVeLivePlayerVideoFrame *视频帧数据,包含像素格式、封装格式、视频宽高等信息,详情请参见 VeLivePlayerVideoFrame

注意

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

onRenderAudioFrame:audioFrame:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
audioFrameVeLivePlayerAudioFrame *音频帧数据,详情请参见 VeLivePlayerAudioFrame

注意

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

onStreamFailedOpenSuperResolution:error:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。
errorVeLivePlayerError *开启超分失败的原因,错误码请参见 VeLivePlayerErrorCode

getDrmResourceLoaderCertificateData:

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

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

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。

getDrmResourceLoaderLicenseUrl:

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

您需要在此回调中返回 DRM license 的 URL。

传入参数

参数名类型说明
playerTVLManager *触发该事件回调的播放器对象。