音视频观测器

  • Unity

更新时间不可用

RegisterAudioFrameObserver [1/2]

注册 PCM 音频帧观测器。

C#
public abstract int RegisterAudioFrameObserver(IAudioPcmFrameSink observer);

你需要在该方法中实现一个 IAudioPcmFrameSink 类,并根据场景需要,注册该类的回调。成功注册音频帧观测器后,SDK 会在捕捉到每个音频帧时,触发你所注册的回调。

参数

参数名描述
observer

音频帧观测器,观测每帧音频的接收,详见 IAudioPcmFrameSink。

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

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

RegisterAudioFrameObserver [2/2]

注册音频帧观测器。

C#
public abstract int RegisterAudioFrameObserver(IAudioPcmFrameSink observer, RAW_AUDIO_FRAME_OP_MODE_TYPE mode);

参数

参数名描述
observer

音频帧观测器,观测每帧音频的接收,详见 IAudioPcmFrameSink。

mode

音频帧的使用模式,详见 RAW_AUDIO_FRAME_OP_MODE_TYPE。

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

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

UnregisterAudioFrameObserver

取消注册音频帧观测器。

C#
public abstract int UnregisterAudioFrameObserver();

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

onAudioVolumeIndication

媒体播放器音量提示回调。

C#
public virtual void OnAudioVolumeIndication(int volume) {}

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

参数

参数名描述
volume

播放器的当前音量,取值范围为 [0,255]。

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

所属接口类

OnFrame

已获取音频帧回调。

C#
public virtual bool OnFrame(AudioPcmFrame frame)
        {
            return true;
        }

注册音频数据观测器后,每次接收到一帧音频帧时,都会触发该回调,报告音频帧信息。

参数

参数名描述
frame

音频帧信息。详见 AudioPcmFrame。

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

返回值

无实际含义。

所属接口类

OnMetaData

报告已获取媒体附属信息。

C#
public virtual void OnMetaData(byte[] data, int length) { }

解析媒体附属信息后时,SDK 会触发该回调,报告媒体附属信息的数据类型和具体数据。

参数

参数名描述
data

具体数据,用户自定义格式的数据。

length

数据长度,单位为 byte。

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

所属接口类

OnPlayBufferUpdated

报告当前缓冲数据能播放的时间。

C#
public virtual void OnPlayBufferUpdated(Int64 playCachedBuffer) { }

播放在线媒体资源的过程中,SDK 会每隔 1 秒触发一次该回调,报告当前缓冲的数据能支持的播放时间。

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

参数

参数名描述
playCachedBuffer

当前缓冲的数据能支持的播放时间 (毫秒)。

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

所属接口类

OnPlayerEvent

报告播放器的事件。

C#
public virtual void OnPlayerEvent(MEDIA_PLAYER_EVENT eventCode, Int64 elapsedTime, string message) { }
  • 调用 Seek 定位播放后,SDK 会触发该回调,报告定位播放的结果。

参数

参数名描述
eventCode

播放器事件,详见 MEDIA_PLAYER_EVENT。

elapsedTime

发生事件的时间 (毫秒)。

message

事件的信息。

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

所属接口类

OnPlayerInfoUpdated

媒体播放器相关信息发生改变回调。

C#
public virtual void OnPlayerInfoUpdated(PlayerUpdatedInfo info) { }

当媒体播放器相关信息发生改变时,SDK 会触发该回调。你可用其进行问题定位和排查。

参数

参数名描述
info

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

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

所属接口类

OnPlayerSourceStateChanged

报告播放器状态改变。

C#
public virtual void OnPlayerSourceStateChanged(MEDIA_PLAYER_STATE state, MEDIA_PLAYER_REASON reason)

当播放器状态改变时,SDK 会触发该回调,报告新的播放状态。

参数

参数名描述
state

新的播放状态,详见 MEDIA_PLAYER_STATE。

reason

播放器状态改变的原因,详见 MEDIA_PLAYER_REASON。

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

所属接口类

OnPlayerSrcInfoChanged

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

C#
public virtual void OnPlayerSrcInfoChanged(SrcInfo from, SrcInfo to) {}

参数

参数名描述
from

变化前,媒体资源播放时的视频码率相关信息。详见 SrcInfo。

to

变化后,媒体资源播放时的视频码率相关信息。详见 SrcInfo。

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

所属接口类

OnPositionChanged

报告当前媒体资源的播放进度。

C#
public virtual void OnPositionChanged(long positionMs, long timestampMs)

播放媒体文件时,SDK 每隔 1 秒会自动触发该回调,报告当前播放进度。

参数

参数名描述
position_ms

当前播放进度,单位为 ms。

timestampMs

当前播放进度的 NTP 时间戳,单位为 ms。

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

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

所属接口类

OnPreloadEvent

报告预加载媒体资源的事件。

C#
public virtual void OnPreloadEvent(string src, PLAYER_PRELOAD_EVENT @event) { }

参数

参数名描述
src

媒体资源的路径。

@event

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

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

所属接口类

OnReadData

读取媒体资源数据回调。

C#
public virtual int OnReadData(IntPtr bufferPtr, int bufferSize)
        {
            return 0;
        }

使用 OpenWithMediaSource 打开媒体资源时,SDK 会触发该回调向你请求传入媒体资源数据的 Buffer。

参数

参数名描述
bufferPtr

输入参数,数据 Buffer,单位为字节。请将 SDK 报告的 bufferSize 数据写入到此参数中。

bufferSize

数据 Buffer 的长度,单位为字节。

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

返回值

  • 如果读取数据成功,请在返回值中传入你实际读取的数据长度,单位为字节。
  • 如果读取数据失败,请在返回值中传入 0。

所属接口类