音视频观测器
registerAudioFrameObserver
注册音频帧观测器。
Java
int registerAudioFrameObserver(IMediaPlayerAudioFrameObserver audioFrameObserver, int mode);
参数
- audioFrameObserver
音频帧观测器,观测每帧音频的接收,详见 IMediaPlayerAudioFrameObserver。
- mode
- 音频帧的使用模式:
- RAW_AUDIO_FRAME_OP_MODE_READ_ONLY (0): (默认) 只读模式。例如: 若用户通过 SDK 采集数据,自己进行 RTMP 推流,则可以选择该模式。
- RAW_AUDIO_FRAME_OP_MODE_READ_WRITE (2): 读写模式。例如:若用户自己有音效处理模块,且想要根据实际需要对数据进行前处理 (例如变声),则可以选择该模式。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
registerPlayerObserver
注册一个播放观测器。
Java
int registerPlayerObserver(IMediaPlayerObserver playerObserver);
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- playerObserver
- 播放观测器,报告播放中的事件,详见 IMediaPlayerObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
registerVideoFrameObserver
注册视频帧观测器。
Java
int registerVideoFrameObserver(IMediaPlayerVideoFrameObserver videoFrameObserver);
详情
你需要在该方法中实现一个 IMediaPlayerVideoFrameObserver 类,并根据场景需要,注册该类的回调。成功注册视频帧观测器后,SDK 会在捕捉到每个视频帧时,触发你所注册的回调。
参数
- videoFrameObserver
- 视频帧观测器,观测每帧视频的接收。详见 IMediaPlayerVideoFrameObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
unRegisterPlayerObserver
取消注册播放观测器。
Java
int unRegisterPlayerObserver(IMediaPlayerObserver playerObserver);
参数
- playerObserver
- 播放观测器,报告播放中的事件,详见 IMediaPlayerObserver。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
onAudioVolumeIndication
onFrame
已获取音频帧回调。
Java
AudioFrame onFrame(AudioFrame frame);
详情
注册音频数据观测器后,每次接收到一帧音频帧时,都会触发该回调,报告音频帧信息。
参数
- frame
- 音频帧信息。详见 AudioFrame。
返回值
根据你在 registerAudioFrameObserver 中设置的 mode 使用音频数据后,在此返回值中传入该音频数据。
所属接口类onMetaData
报告已获取媒体附属信息。
Java
void onMetaData(Constants.MediaPlayerMetadataType type, byte[] data);
详情
解析媒体附属信息后时,SDK 会触发该回调,报告媒体附属信息的数据类型和具体数据。
参数
- type
- 媒体附属信息数据类型,详见 MediaPlayerMetadataType。
- data
- 具体数据,用户自定义格式的数据。
onPlayBufferUpdated
onPlayerEvent
报告播放器的事件。
Java
void onPlayerEvent(Constants.MediaPlayerEvent eventCode, long elapsedTime, String message);
详情
- 调用 seek 定位播放后,SDK 会触发该回调,报告定位播放的结果。
参数
- eventCode
- 播放器事件,详见 MediaPlayerEvent。
- elapsedTime
- 发生事件的时间 (毫秒)。
- message
- 事件的信息。
onPlayerInfoUpdated
媒体播放器相关信息发生改变回调。
Java
void onPlayerInfoUpdated(PlayerUpdatedInfo info);
详情
当媒体播放器相关信息发生改变时,SDK 会触发该回调。你可用其进行问题定位和排查。
参数
- info
- 媒体播放器相关信息。详见 PlayerUpdatedInfo。
onPlayerStateChanged
报告播放器状态改变。
Java
void onPlayerStateChanged(Constants.MediaPlayerState state, Constants.MediaPlayerReason reason);
详情
当播放器状态改变时,SDK 会触发该回调,报告新的播放状态。
参数
- state
- 新的播放状态,详见 MediaPlayerState。
- reason
- 播放器状态改变的原因,详见 MediaPlayerReason。
onPlayerSrcInfoChanged
onPositionChanged
onPreloadEvent
报告预加载媒体资源的事件。
Java
void onPreloadEvent(String src, Constants.MediaPlayerPreloadEvent event);
参数
- src
- 媒体资源的路径。
- event
- 预加载媒体资源时发生的事件。详见 MediaPlayerPreloadEvent。
onReadData
读取媒体资源数据回调。
Java
int onReadData(ByteBuffer buffer, int bufferSize);
详情
使用 openWithMediaSource 打开媒体资源时,SDK 会触发该回调向你请求传入媒体资源数据的 Buffer。
参数
- buffer
- 输入参数,数据 Buffer,单位为字节。请将 SDK 报告的 bufferSize 数据写入到此参数中。
- bufferSize
- 数据 Buffer 的长度,单位为字节。
返回值
- 如果读取数据成功,请在返回值中传入你实际读取的数据长度,单位为字节。
- 如果读取数据失败,请在返回值中传入 0。