媒体流附属信息分发

  • C++

更新时间不可用

getMaxMetadataSize

当 SDK 请求元数据最大大小时触发的回调。

C++
virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; }

调用 registerMediaMetadataObserver 成功注册后,SDK 在每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。

返回值

方法调用成功,返回你希望使用的元数据 buffer 的最大大小,单位为字节。最大值为 1024 字节。

所属接口类

registerMediaMetadataObserver

注册元数据观察器。

C++
virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0;

你需要实现 IMetadataObserver 类,并在该方法中指定元数据类型。该方法支持在视频流中添加同步元数据,用于实现更丰富的互动直播场景,例如发送购物链接、数字优惠券和在线问答。成功调用该方法后,SDK 会触发 getMaxMetadataSize 回调。

注: 请在调用 joinChannel 之前调用此方法。

参数

参数名描述
observer

元数据观察器。详见 IMetadataObserver。

type

元数据类型。详见 METADATA_TYPE。SDK 当前仅支持 VIDEO_METADATA。

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

返回值

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

所属接口类

unregisterMediaMetadataObserver

取消注册指定的元数据观察器。

C++
virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0;

参数

参数名描述
observer

元数据观察器。详见 IMetadataObserver。

type

元数据类型。SDK 当前仅支持 VIDEO_METADATA。

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

返回值

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

所属接口类

onMetadataReceived

当本地用户接收到 metadata 时触发的回调。

C++
virtual void onMetadataReceived(const Metadata& metadata) = 0;

参数

参数名描述
metadata

接收到的元数据。详见 Metadata。

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

所属接口类

onReadyToSendMetadata

当 SDK 准备好发送元数据时触发的回调。

C++
virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0;

注: 请确保元数据的大小不超过 getMaxMetadataSize 回调中设置的值。如果超过该值,SDK 会截除超出部分。

触发时机

当 SDK 准备好发送元数据时触发。

参数

参数名描述
metadata

用户希望发送的元数据。详见 Metadata。

source_type

视频数据类型。详见 VIDEO_SOURCE_TYPE。

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

返回值

  • true:发送该视频帧。
  • false:不发送该视频帧。

所属接口类