音视频观测器
RegisterAudioFrameObserver
注册音频帧观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int RegisterAudioFrameObserver(UIAudioPcmFrameSink* observer, ERAW_AUDIO_FRAME_OP_MODE_TYPE mode = ERAW_AUDIO_FRAME_OP_MODE_TYPE::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY);
参数
- observer
音频帧观测器,观测每帧音频的接收,详见 IAudioPcmFrameSink。
- mode
音频帧的使用模式,详见 ERAW_AUDIO_FRAME_OP_MODE_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
RegisterPlayerSourceObserver
注册一个播放观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int RegisterPlayerSourceObserver(UIMediaPlayerSourceObserver* observer);
参数
- observer
- 播放观测器,报告播放中的事件,详见 IMediaPlayerSourceObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
RegisterVideoFrameObserver
注册视频帧观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int RegisterVideoFrameObserver(UIVideoFrameObserver* observer);
详情
你需要在该方法中实现一个 IVideoFrameObserver 类,并根据场景需要,注册该类的回调。成功注册视频帧观测器后,SDK 会在捕捉到每个视频帧时,触发你所注册的回调。
参数
- observer
- 视频帧观测器,观测每帧视频的接收。详见 IVideoFrameObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
UnregisterAudioFrameObserver
取消注册音频帧观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int UnregisterAudioFrameObserver(UIAudioPcmFrameSink* observer);
参数
- observer
- 音频帧观测器,详见 IAudioPcmFrameSink。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
UnregisterPlayerSourceObserver
取消注册播放观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int UnregisterPlayerSourceObserver(UIMediaPlayerSourceObserver* observer);
参数
- observer
- 播放观测器,报告播放中的事件,详见 IMediaPlayerSourceObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
UnregisterVideoFrameObserver
取消注册视频帧观测器。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int UnregisterVideoFrameObserver(UIVideoFrameObserver* observer);
参数
- observer
- 视频帧观测器,观测每帧视频的接收,详见 IVideoFrameObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
FOnAudioVolumeIndication
FOnFrame
已获取音频帧回调。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnFrame, const FAudioPcmFrame&, pcmFrame);
详情
注册音频数据观测器后,每次接收到一帧音频帧时,都会触发该回调,报告音频帧信息。
参数
- frame
- 音频帧信息。详见 FAudioPcmFrame。
FOnMetaData
FOnPlayBufferUpdated
报告当前缓冲数据能播放的时间。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPlayBufferUpdated, int64, playCachedBuffer);
详情
播放在线媒体资源的过程中,SDK 会每隔 1 秒触发一次该回调,报告当前缓冲的数据能支持的播放时间。
- 当缓冲数据支持的播放时间小于阈值(默认为 0)时,返回 PLAYER_EVENT_BUFFER_LOW。
- 当缓冲数据支持的播放时间大于阈值(默认为 0)时,返回 PLAYER_EVENT_BUFFER_RECOVER。
参数
- playCachedBuffer
- 当前缓冲的数据能支持的播放时间 (毫秒)。
FOnPlayerEvent
报告播放器的事件。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnPlayerEvent, EMEDIA_PLAYER_EVENT, eventCode, int64, elapsedTime, const FString, message);
详情
- 调用 Seek 定位播放后,SDK 会触发该回调,报告定位播放的结果。
参数
- eventCode
- 播放器事件,详见 EMEDIA_PLAYER_EVENT。
- elapsedTime
- 发生事件的时间 (毫秒)。
- message
- 事件的信息。
FOnPlayerInfoUpdated
媒体播放器相关信息发生改变回调。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPlayerInfoUpdated, const FPlayerUpdatedInfo&, info);
详情
当媒体播放器相关信息发生改变时,SDK 会触发该回调。你可用其进行问题定位和排查。
参数
- info
- 媒体播放器相关信息。详见 FPlayerUpdatedInfo。
FOnPlayerSourceStateChanged
报告播放器状态改变。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnPlayerSourceStateChanged, EMEDIA_PLAYER_STATE, state, FENUMWRAP_MEDIA_PLAYER_ERROR, ec);
详情
当播放器状态改变时,SDK 会触发该回调,报告新的播放状态。
参数
- state
- 新的播放状态,详见 EMEDIA_PLAYER_STATE。
- ec
- 播放器错误码,详见 EENUMCUSTOM_MEDIA_PLAYER_ERROR。
FOnPlayerSrcInfoChanged
媒体资源视频码率变化回调。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnPlayerSrcInfoChanged, const FSrcInfo&, from, const FSrcInfo&, to);
参数
所属接口类FOnPositionChanged
FOnPreloadEvent
报告预加载媒体资源的事件。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnPreloadEvent, const FString, src, EPLAYER_PRELOAD_EVENT, event);
参数
- src
- 媒体资源的路径。
- event
- 预加载媒体资源时发生的事件。详见 EPLAYER_PRELOAD_EVENT。