音视频观测器
registerAudioFrameObserver
注册音频帧观测器对象。
int registerAudioFrameObserver(IMediaPlayerAudioFrameObserver audioFrameObserver, int mode);
参数
- audioFrameObserver
- 音频帧观测器对象,用于接收每一帧音频数据。详见 IMediaPlayerAudioFrameObserver。
- mode
- 音频帧的使用模式:
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY(0):(默认)只读模式。例如,你通过声网 SDK 获取音频数据后,再推送 RTMP 或 RTMPS 流。RAW_AUDIO_FRAME_OP_MODE_READ_WRITE(2):读写模式。你可以从 AudioFrame 中读取音频数据,修改后再播放。例如,你有自己的音频特效处理模块,并进行语音预处理,如变声。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
registerPlayerObserver
注册媒体播放器观察器。
int registerPlayerObserver(IMediaPlayerObserver playerObserver);
用于监听媒体播放器播放过程中的事件。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
- playerObserver
- 媒体播放器观察器,详见 IMediaPlayerObserver。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
registerVideoFrameObserver
注册视频帧观察者对象。
int registerVideoFrameObserver(IMediaPlayerVideoFrameObserver videoFrameObserver);
你需要实现 IMediaPlayerVideoFrameObserver 类,并注册回调。成功注册后,SDK 每次接收到视频帧时都会触发已注册的回调。
参数
- videoFrameObserver
- 用于上报每一帧视频的接收情况。详见 IMediaPlayerVideoFrameObserver。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
unRegisterPlayerObserver
释放媒体播放器观察者。
int unRegisterPlayerObserver(IMediaPlayerObserver playerObserver);
参数
- playerObserver
- 用于监听播放过程中的事件的媒体播放器观察者。详见 IMediaPlayerObserver。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
onAudioVolumeIndication
报告媒体播放器音量的回调。
@CalledByNative void onAudioVolumeIndication(int volume);
该回调每 200 毫秒触发一次。
触发时机
该回调每 200 毫秒触发一次,用于报告媒体播放器的当前音量。
参数
- volume
- 媒体播放器的音量,取值范围为 0 到 255。
onFrame
播放器接收到音频帧时触发的回调。
@CalledByNative AudioFrame onFrame(AudioFrame frame);
注册音频帧观察器后,该回调会在播放器每次接收到音频帧时触发。
触发时机
该回调在播放器接收到音频帧时被触发。
参数
- frame
- 音频帧信息,详见 AudioFrame。
返回值
在调用 registerAudioFrameObserver 并设置 mode 参数后传入的音频数据,用于处理音频数据。
onFrame
播放器接收到视频帧时触发的回调。
@CalledByNative void onFrame(VideoFrame frame);
注册视频帧观察器后,该回调在播放器接收到视频帧时被触发。
触发时机
该回调在播放器接收到视频帧时被触发。
参数
- frame
- 视频帧信息。
onMetaData
接收到媒体元数据时触发的回调。
void onMetaData(Constants.MediaPlayerMetadataType type, byte[] data)
该回调在播放器接收到媒体元数据时被触发。
触发时机
该回调在播放器接收到媒体元数据时被触发。
参数
- type
- 媒体元数据的类型,详见 MediaPlayerMetadataType。
- data
- 媒体元数据的详细内容。
onPlayBufferUpdated
onPlayBufferUpdated 回调:报告缓冲数据可支持的播放时长。
void onPlayBufferUpdated(long playCachedBuffer)
- 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回
PLAYER_EVENT_BUFFER_LOW(6)。 - 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回
PLAYER_EVENT_BUFFER_RECOVER(7)。
触发时机
该回调在播放在线媒体资源时每两秒被触发。
参数
- playCachedBuffer
- 缓冲数据可支持的播放时长,单位为毫秒。
onPlayerEvent
播放器事件回调。
void onPlayerEvent(Constants.MediaPlayerEvent eventCode, long elapsedTime, String message)
调用 seek 方法后,SDK 会触发该回调报告操作结果。
参数
- eventCode
- 播放器事件,详见 MediaPlayerEvent。
- elapsedTime
- 事件发生的时间,单位为毫秒。
- message
- 关于该事件的补充信息。
onPlayerInfoUpdated
媒体播放器相关信息发生变化时的回调。
@CalledByNative void onPlayerInfoUpdated(PlayerUpdatedInfo info);
你可以使用该回调进行故障排查。
触发时机
该回调在媒体播放器相关信息发生变化时被触发。
参数
- info
- 媒体播放器相关信息。详见 PlayerUpdatedInfo。
onPlayerStateChanged
播放状态发生改变回调。
void onPlayerStateChanged(Constants.MediaPlayerState state, Constants.MediaPlayerReason reason);
当媒体播放器的状态发生变化时,SDK 会触发该回调。
参数
- state
- 播放状态,详见 MediaPlayerState。
- reason
- 播放状态变化的原因,详见 MediaPlayerReason。
onPlayerSrcInfoChanged
媒体资源视频码率发生变化回调。
void onPlayerSrcInfoChanged(SrcInfo from, SrcInfo to)
触发时机
该回调在媒体资源的视频码率发生变化时被触发。
参数
所属接口类onPositionChanged
播放进度回调。
void onPositionChanged(long positionMs, long timestampMs)
该回调用于报告媒体文件的播放进度。
触发时机
该回调在播放媒体文件时每两秒被触发。
参数
- positionMs
- 媒体文件的播放位置,单位为毫秒。
- timestampMs
- 当前播放进度对应的 NTP 时间戳,单位为毫秒。
onPreloadEvent
预加载媒体资源事件回调。
void onPreloadEvent(String src, Constants.MediaPlayerPreloadEvent event)
该回调用于上报预加载媒体资源过程中发生的事件。
参数
- src
- 媒体资源的 URL。
- event
- 预加载媒体资源时发生的事件。详见 MediaPlayerPreloadEvent。
onReadData
SDK 读取媒体资源数据时触发的回调。
@CalledByNative int onReadData(ByteBuffer buffer, int bufferSize);
当你调用 openWithMediaSource 方法打开媒体资源时,SDK 会触发该回调,并请求你传入媒体资源数据的缓冲区。
参数
- buffer
- 数据缓冲区。你需要将 SDK 请求的
bufferSize字节数据写入该缓冲区。详见ByteBuffer。 - bufferSize
- 数据缓冲区的长度,单位为字节。
返回值
- 数据读取成功时,返回实际读取的数据长度(字节)。
- 数据读取失败时,返回 0。