音视频观测器

  • Android

更新时间不可用

registerAudioFrameObserver

注册音频帧观测器对象。

Java
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

注册媒体播放器观察器。

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

报告媒体播放器音量的回调。

Java
@CalledByNative void onAudioVolumeIndication(int volume);

该回调每 200 毫秒触发一次。

触发时机

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

参数

参数名描述
volume

媒体播放器的音量,取值范围为 0 到 255。

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

所属接口类

onFrame

播放器接收到音频帧时触发的回调。

Java
@CalledByNative AudioFrame onFrame(AudioFrame frame);

注册音频帧观察器后,该回调会在播放器每次接收到音频帧时触发。

触发时机

该回调在播放器接收到音频帧时被触发。

参数

参数名描述
frame

音频帧信息,详见 AudioFrame。

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

返回值

在调用 registerAudioFrameObserver 并设置 mode 参数后传入的音频数据,用于处理音频数据。

所属接口类

onFrame

播放器接收到视频帧时触发的回调。

Java
@CalledByNative void onFrame(VideoFrame frame);

注册视频帧观察器后,该回调在播放器接收到视频帧时被触发。

触发时机

该回调在播放器接收到视频帧时被触发。

参数

参数名描述
frame

视频帧信息。

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

所属接口类

onMetaData

接收到媒体元数据时触发的回调。

Java
void onMetaData(Constants.MediaPlayerMetadataType type, byte[] data)

该回调在播放器接收到媒体元数据时被触发。

触发时机

该回调在播放器接收到媒体元数据时被触发。

参数

参数名描述
type

媒体元数据的类型,详见 MediaPlayerMetadataType。

data

媒体元数据的详细内容。

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

所属接口类

onPlayBufferUpdated

onPlayBufferUpdated 回调:报告缓冲数据可支持的播放时长。

Java
void onPlayBufferUpdated(long playCachedBuffer)

该回调在播放在线媒体资源时每两秒触发一次。

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

触发时机

该回调在播放在线媒体资源时每两秒被触发。

参数

参数名描述
playCachedBuffer

缓冲数据可支持的播放时长,单位为毫秒。

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

所属接口类

onPlayerEvent

播放器事件回调。

Java
void onPlayerEvent(Constants.MediaPlayerEvent eventCode, long elapsedTime, String message)

调用 seek 方法后,SDK 会触发该回调报告操作结果。

参数

参数名描述
eventCode

播放器事件,详见 MediaPlayerEvent。

elapsedTime

事件发生的时间,单位为毫秒。

message

关于该事件的补充信息。

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

所属接口类

onPlayerInfoUpdated

媒体播放器相关信息发生变化时的回调。

Java
@CalledByNative void onPlayerInfoUpdated(PlayerUpdatedInfo info);

你可以使用该回调进行故障排查。

触发时机

该回调在媒体播放器相关信息发生变化时被触发。

参数

参数名描述
info

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

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

所属接口类

onPlayerStateChanged

播放状态发生改变回调。

Java
void onPlayerStateChanged(Constants.MediaPlayerState state, Constants.MediaPlayerReason reason);

当媒体播放器的状态发生变化时,SDK 会触发该回调。

参数

参数名描述
state

播放状态,详见 MediaPlayerState。

reason

播放状态变化的原因,详见 MediaPlayerReason。

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

所属接口类

onPlayerSrcInfoChanged

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

Java
void onPlayerSrcInfoChanged(SrcInfo from, SrcInfo to)

触发时机

该回调在媒体资源的视频码率发生变化时被触发。

参数

参数名描述
from

正在播放的媒体资源的视频码率信息。详见 SrcInfo。

to

变更后的视频码率信息。详见 SrcInfo。

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

所属接口类

onPositionChanged

播放进度回调。

Java
void onPositionChanged(long positionMs, long timestampMs)

该回调用于报告媒体文件的播放进度。

触发时机

该回调在播放媒体文件时每两秒被触发。

参数

参数名描述
positionMs

媒体文件的播放位置,单位为毫秒。

timestampMs

当前播放进度对应的 NTP 时间戳,单位为毫秒。

注: 该参数仅在频道内生效。

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

所属接口类

onPreloadEvent

预加载媒体资源事件回调。

Java
void onPreloadEvent(String src, Constants.MediaPlayerPreloadEvent event)

该回调用于上报预加载媒体资源过程中发生的事件。

参数

参数名描述
src

媒体资源的 URL。

event

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

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

所属接口类

onReadData

SDK 读取媒体资源数据时触发的回调。

Java
@CalledByNative int onReadData(ByteBuffer buffer, int bufferSize);

当你调用 openWithMediaSource 方法打开媒体资源时,SDK 会触发该回调,并请求你传入媒体资源数据的缓冲区。

参数

参数名描述
buffer

数据缓冲区。你需要将 SDK 请求的 bufferSize 字节数据写入该缓冲区。详见 ByteBuffer。

bufferSize

数据缓冲区的长度,单位为字节。

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

返回值

  • 数据读取成功时,返回实际读取的数据长度(字节)。
  • 数据读取失败时,返回 0。

所属接口类