音视频观测器
- C++
更新时间不可用
registerAudioFrameObserver [1/2]
注册一个 IAudioPcmFrameSink 音频帧观察者对象。
virtual int registerAudioFrameObserver(media::IAudioPcmFrameSink* observer) = 0;你需要实现 IAudioPcmFrameSink 类,并根据业务场景注册回调。注册成功后,每当接收到音频帧时,SDK 会触发对应的回调。
参数
| 参数名 | 描述 |
|---|---|
observer | 音频帧观察者对象,详见 IAudioPcmFrameSink。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
registerAudioFrameObserver [2/2]
注册音频帧观测器对象。
virtual int registerAudioFrameObserver(media::IAudioPcmFrameSink* observer, RAW_AUDIO_FRAME_OP_MODE_TYPE mode) = 0;参数
| 参数名 | 描述 |
|---|---|
observer | 音频帧观测器对象。详见 IAudioPcmFrameSink。 |
mode | 音频帧的使用模式。详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
registerPlayerSourceObserver
注册媒体播放器观察器。
virtual int registerPlayerSourceObserver(IMediaPlayerSourceObserver* observer) = 0;用于监听播放过程中的事件。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
observer | 用于监听播放过程中的事件。详见 IMediaPlayerSourceObserver。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
registerVideoFrameObserver
注册视频帧观察器对象。
virtual int registerVideoFrameObserver(media::base::IVideoFrameObserver* observer) = 0;你需要实现 IVideoFrameObserver 类,并根据你的使用场景注册回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发已注册的回调。
参数
| 参数名 | 描述 |
|---|---|
observer | 视频帧观察器。详见 IVideoFrameObserver。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
unregisterAudioFrameObserver
取消注册音频帧观察器。
virtual int unregisterAudioFrameObserver(media::IAudioPcmFrameSink* observer) = 0;参数
| 参数名 | 描述 |
|---|---|
observer | 音频帧观察器。详见 IAudioPcmFrameSink。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
unregisterPlayerSourceObserver
释放媒体播放器观察者。
virtual int unregisterPlayerSourceObserver(IMediaPlayerSourceObserver* observer) = 0;参数
| 参数名 | 描述 |
|---|---|
observer | 媒体播放器观察者,用于监听播放过程中的事件。详见 IMediaPlayerSourceObserver。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
unregisterVideoFrameObserver
取消注册视频帧观察器。
virtual int unregisterVideoFrameObserver(agora::media::base::IVideoFrameObserver* observer) = 0;参数
| 参数名 | 描述 |
|---|---|
observer | 视频帧观察器。详见 IVideoFrameObserver。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
onAudioVolumeIndication
报告媒体播放器音量的回调。
virtual void onAudioVolumeIndication(int volume) = 0;该回调每 200 毫秒触发一次。
参数
所属接口类
onFrame
onFrame 回调。每次播放器接收到音频帧时触发。
virtual void onFrame(agora::media::base::AudioPcmFrame* frame) = 0;注册音频帧观察器后,每次播放器接收到音频帧时,都会触发该回调,并报告该音频帧的详细信息。
触发时机
每次播放器接收到音频帧时触发。
参数
| 参数名 | 描述 |
|---|---|
frame | 音频帧信息,详见 AudioPcmFrame。 |
所属接口类
onMetaData [1/2]
接收到媒体元数据时触发的回调。
virtual void onMetaData(const void* data, int length) = 0;该回调在播放器接收到媒体元数据时触发。
参数
所属接口类
onPlayBufferUpdated
报告缓冲数据可支持的播放时长。
virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0;当播放在线媒体资源时,SDK 每两秒触发一次该回调,用于报告当前缓冲数据可支持的播放时长。
- 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回
PLAYER_EVENT_BUFFER_LOW(6)。 - 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回
PLAYER_EVENT_BUFFER_RECOVER(7)。
触发时机
播放在线媒体资源时,SDK 每两秒触发一次该回调。
参数
所属接口类
onPlayerEvent
播放器事件回调。
virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT eventCode, int64_t elapsedTime, const char* message) = 0;调用 seek 方法后,SDK 会触发该回调报告 seek 操作的结果。
参数
| 参数名 | 描述 |
|---|---|
eventCode | 播放器事件,详见 MEDIA_PLAYER_EVENT。 |
elapsedTime | |
message |
所属接口类
onPlayerInfoUpdated [1/2]
onPlayerInfoUpdated 回调:当媒体播放器信息发生变化时触发。
virtual void onPlayerInfoUpdated(const media::base::PlayerUpdatedInfo& info) = 0;你可以通过该回调获取媒体播放器信息的变化,用于故障排查。
参数
| 参数名 | 描述 |
|---|---|
info | 媒体播放器相关信息。详见 PlayerUpdatedInfo。 |
所属接口类
onPlayerSourceStateChanged
播放状态变化回调。
virtual void onPlayerSourceStateChanged(media::base::MEDIA_PLAYER_STATE state, media::base::MEDIA_PLAYER_REASON reason) = 0;当媒体播放器状态发生变化时,SDK 会触发该回调报告当前播放状态。
参数
| 参数名 | 描述 |
|---|---|
state | 播放状态。详见 MEDIA_PLAYER_STATE。 |
reason | 播放状态变化的原因。详见 MEDIA_PLAYER_REASON。 |
所属接口类
onPlayerSrcInfoChanged
媒体资源视频码率发生变化时触发的回调。
virtual void onPlayerSrcInfoChanged(const media::base::SrcInfo& from, const media::base::SrcInfo& to) = 0;参数
所属接口类
onPositionChanged
播放进度发生变化回调。
virtual void onPositionChanged(int64_t positionMs, int64_t timestampMs) = 0;该回调在播放媒体文件时每两秒触发一次,用于报告当前播放进度。
参数
所属接口类
onPreloadEvent
预加载媒体资源事件回调。
virtual void onPreloadEvent(const char* src, media::base::PLAYER_PRELOAD_EVENT event) = 0;参数
| 参数名 | 描述 |
|---|---|
src | |
event | 预加载媒体资源时触发的事件,详见 PLAYER_PRELOAD_EVENT。 |
所属接口类
onReadData
SDK 读取媒体资源数据时触发的回调。
virtual int onReadData(unsigned char *buffer, int bufferSize) = 0;当你调用 openWithMediaSource 方法打开媒体资源时,SDK 会触发该回调,并请求你传入媒体资源数据的缓冲区。
参数
返回值
- 如果数据读取成功,返回实际读取的数据长度(字节)。
- 如果读取失败,返回 0。