@protocol VeLivePlayerObserver <NSObject>
播放事件回调。
- (void)onError:(TVLManager *_Nonnull)player error:(VeLivePlayerError *_Nonnull)error;
播放器错误信息回调,播放器出现错误时,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
error | VeLivePlayerError* | 错误信息,详情请参见 VeLivePlayerError 。 |
- (void)onFirstVideoFrameRender:(TVLManager *_Nonnull)player isFirstFrame:(BOOL)isFirstFrame;
视频首帧渲染事件回调。视频首帧渲染成功,或播放过程中发生重试,重试后的第一个视频帧渲染成功,均会触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
isFirstFrame | BOOL | 渲染成功的是否为视频首帧。
|
- (void)onFirstAudioFrameRender:(TVLManager *_Nonnull)player isFirstFrame:(BOOL)isFirstFrame;
音频首帧渲染事件回调。音频首帧渲染成功,或播放过程中发生重试,重试后的第一个音频帧渲染成功,均会触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
isFirstFrame | BOOL | 渲染成功的是否为音频首帧。
|
- (void)onStallStart:(TVLManager *_Nonnull)player;
播放卡顿开始回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象 |
- (void)onStallEnd:(TVLManager *_Nonnull)player;
播放卡顿结束回调。音频缓冲区达到起播条件且开始播放后,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
- (void)onVideoRenderStall:(TVLManager *_Nonnull)player stallTime:(int64_t)stallTime;
视频渲染卡顿回调。视频渲染发生卡顿时,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
stallTime | int64_t | 视频渲染卡顿时长,单位为 ms。 |
- (void)onAudioRenderStall:(TVLManager *_Nonnull)player stallTime:(int64_t)stallTime;
音频渲染卡顿回调。音频渲染发生卡顿时,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
stallTime | int64_t | 音频渲染卡顿时长,单位为 ms。 |
- (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 。 |
- (void)onVideoSizeChanged:(TVLManager *_Nonnull)player width:(int)width height:(int)height;
视频分辨率变化回调。视频大小发生变化时,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
width | int | 变化后的视频宽度,单位为 px。 |
height | int | 变化后的视频高度,单位为 px。 |
- (void)onReceiveSeiMessage:(TVLManager *_Nonnull)player message:(NSString *_Nonnull)message;
字符串 SEI 消息回调,当播放器 SDK 接收到 SEI 消息时,触发该回调。需要开启 VeLivePlayerConfiguration 中 enableSei 属性。当 enableBinarySei 属性开启时,字符串 SEI 消息将不再发送。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
message | NSString* | SEI 信息。 |
- (void)onReceiveBinarySeiMessage:(TVLManager *_Nonnull)player message:(NSData *_Nonnull)message;
二级制 SEI 消息回调,当播放器 SDK 接收到 SEI 消息时,触发该回调。需要开启 VeLivePlayerConfiguration 中 enableBinarySei 属性。当 enableBinarySei 属性开启时,字符串 SEI 消息将不再发送。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
message | NSData* | SEI 信息。 |
- (void)onMainBackupSwitch:(TVLManager *_Nonnull)player streamType:(VeLivePlayerStreamType)streamType error:(VeLivePlayerError *)error;
主备流切换回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
streamType | VeLivePlayerStreamType | 切换后的流类型为主路流或备路流,详情请参见 VeLivePlayerStreamType 。 |
error | VeLivePlayerError* | 触发主备流切换的原因,详情请参见 VeLivePlayerError 。 |
- (void)onPlayerStatusUpdate:(TVLManager *_Nonnull)player status:(VeLivePlayerStatus)status;
播放状态发生变化时,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
status | VeLivePlayerStatus | 当前播放器的状态,详情请参见 VeLivePlayerStatus 。 |
- (void)onStatistics:(TVLManager *_Nonnull)player statistics:(VeLivePlayerStatistics *_Nonnull)statistics;
播放信息周期性回调。播放器 SDK 会周期性地回调本方法,您可以通过本方法获取当前播放器的播放地址、码率和帧率等信息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
statistics | VeLivePlayerStatistics* | 播放器周期性回调的统计信息,详情请参见 VeLivePlayerStatistics 。 |
- (void)onSnapshotComplete:(TVLManager *_Nonnull)player image:(UIImage *_Nonnull)image;
截图成功回调。当播放器调用 snapshot 截图成功后,触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
image | UIImage* | 截图的 UIImage 对象。 |
- (void)onRenderVideoFrame:(TVLManager *_Nonnull)player videoFrame:(VeLivePlayerVideoFrame *_Nonnull)videoFrame;
视频帧回调。调用 enableVideoFrameObserver:pixelFormat:bufferType: 开启视频帧解析回调后,当播放器成功解码视频帧时,会触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
videoFrame | VeLivePlayerVideoFrame* | 视频帧数据,包含像素格式、封装格式、视频宽高等信息,详情请参见 VeLivePlayerVideoFrame 。 |
注意
如果自定义渲染使用纹理格式,建议在视频帧回调线程中执行渲染操作。
- (void)onRenderAudioFrame:(TVLManager *_Nonnull)player audioFrame:(VeLivePlayerAudioFrame *_Nonnull)audioFrame;
音频帧回调。调用 enableAudioFrameObserver:enableRendering:开启音频帧解析回调后,当播放器成功解码音频帧时,会触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
audioFrame | VeLivePlayerAudioFrame* | 音频帧数据,详情请参见 VeLivePlayerAudioFrame 。 |
注意
回调的音频帧数据为 float32 格式,大端字节序存储。
- (void)onStreamFailedOpenSuperResolution:(TVLManager *_Nonnull)player error:(VeLivePlayerError *_Nullable)error;
超分开启失败。调用 setEnableSuperResolution:开启超分后,当播放器不支持超分开启或者超分处理出错时,会触发此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
error | VeLivePlayerError* | 开启超分失败的原因,错误码请参见 VeLivePlayerErrorCode 。 |
- (NSData *)getDrmResourceLoaderCertificateData:(TVLManager *_Nonnull)player;
您需要在此回调中返回 FairPlay 证书的 NSData 数据。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |
- (NSString *)getDrmResourceLoaderLicenseUrl:(TVLManager *_Nonnull)player;
您需要在此回调中返回 DRM license 的 URL。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player | TVLManager* | 触发该事件回调的播放器对象。 |