音视频观测器

  • Unreal Blueprint

更新时间不可用

GetMediaPlayerSourceObserver

获取事件处理器。

C++
UFUNCTION(BlueprintPure, Category = "Agora|IRtcEngine")
UAgoraBPuIMediaPlayerSourceObserver* GetMediaPlayerSourceObserver();

调用该方法获取事件处理器后,你可以调用 AddBlueprintCallbackExecutor 绑定对应的回调执行器。

调用时机

调用 GetAgoraRtcEngine 后。

调用限制

无。

返回值

返回一个指向 UAgoraBPuIMediaPlayerSourceObserver 事件处理器的指针。

AddBlueprintCallbackExecutor

添加一个蓝图回调执行器。

C++
UFUNCTION(BlueprintCallable, Category = "Agora|Event")
void AddBlueprintCallbackExecutor(UAgoraBPuIMediaPlayerSourceObserverCBExecutor* Executor);

获取事件处理器后,你可以调用该方法绑定回调执行器,用于执行 IMediaPlayerSourceObserver 接口类下的相关回调。

调用时机

调用 GetMediaPlayerSourceObserver 获取事件处理器后。

调用限制

无。

参数

参数名描述
Executor

指向 UAgoraBPuIMediaPlayerSourceObserverCBExecutor 类型的指针,用于执行 IMediaPlayerSourceObserver 接口类下的回调逻辑。

表格内容超出当前宽度,可横向滚动查看更多列。

OnAudioVolumeIndication

媒体播放器音量提示回调。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
void OnAudioVolumeIndication(int volume);

详情

SDK 每 200 毫秒触发一次该回调,报告媒体播放器当前的音量。

参数

参数名描述
volume

播放器的当前音量,取值范围为 [0,255]。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnMetaData

报告已获取媒体附属信息。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnMetaData(const FString& Data);

详情

解析媒体附属信息后时,SDK 会触发该回调,报告媒体附属信息的数据类型和具体数据。

参数

参数名描述
data

具体数据,用户自定义格式的数据。

length

数据长度,单位为 byte。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPlayBufferUpdated

报告当前缓冲数据能播放的时间。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPlayBufferUpdated(int64 playCachedBuffer);

详情

播放在线媒体资源的过程中,SDK 会每隔 1 秒触发一次该回调,报告当前缓冲的数据能支持的播放时间。

  • 当缓冲数据支持的播放时间小于阈值(默认为 0)时,返回 PLAYER_EVENT_BUFFER_LOW (6)。
  • 当缓冲数据支持的播放时间大于阈值(默认为 0)时,返回 PLAYER_EVENT_BUFFER_RECOVER (7)。

参数

参数名描述
playCachedBuffer

当前缓冲的数据能支持的播放时间 (毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPlayerEvent

报告播放器的事件。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPlayerEvent(EMEDIA_PLAYER_EVENT eventCode, int64 elapsedTime, const FString& message);

详情

  • 调用 Seek 定位播放后,SDK 会触发该回调,报告定位播放的结果。

参数

参数名描述
eventCode

播放器事件,详见 EMEDIA_PLAYER_EVENT。

elapsedTime

发生事件的时间 (毫秒)。

message

事件的信息。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPlayerInfoUpdated

媒体播放器相关信息发生改变回调。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPlayerInfoUpdated(const FPlayerUpdatedInfo& info);

详情

当媒体播放器相关信息发生改变时,SDK 会触发该回调。你可用其进行问题定位和排查。

参数

参数名描述
info

媒体播放器相关信息。详见 FPlayerUpdatedInfo。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPlayerSourceStateChanged

报告播放器状态改变。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPlayerSourceStateChanged(EMEDIA_PLAYER_STATE state, FENUMWRAP_MEDIA_PLAYER_REASON ec);

详情

当播放器状态改变时,SDK 会触发该回调,报告新的播放状态。

参数

参数名描述
state

新的播放状态,详见 EMEDIA_PLAYER_STATE。

reason

播放器状态改变的原因,详见 FENUMWRAP_MEDIA_PLAYER_REASON。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPlayerSrcInfoChanged

媒体资源视频码率变化回调。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPlayerSrcInfoChanged(const FSrcInfo& from, const FSrcInfo& to);

参数

参数名描述
from

变化前,媒体资源播放时的视频码率相关信息。详见 FSrcInfo。

to

变化后,媒体资源播放时的视频码率相关信息。详见 FSrcInfo。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPositionChanged

报告当前媒体资源的播放进度。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPositionChanged(int64 position_ms, int64 timestampMs);

详情

播放媒体文件时,SDK 每隔 1 秒会自动触发该回调,报告当前播放进度。

参数

参数名描述
positionMs

当前播放进度,单位为 ms。

timestampMs

当前播放进度的 NTP 时间戳,单位为 ms。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

OnPreloadEvent

报告预加载媒体资源的事件。

C++
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnPreloadEvent(const FString& src, EPLAYER_PRELOAD_EVENT event);

参数

参数名描述
src

媒体资源的路径。

event

预加载媒体资源时发生的事件。详见 EPLAYER_PRELOAD_EVENT。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类