媒体流附属信息分发
- Android
更新时间不可用
getMaxMetadataSize
当 SDK 请求元数据最大大小时触发的回调。
public abstract int getMaxMetadataSize()调用 registerMediaMetadataObserver 成功注册后,SDK 在每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。
返回值
方法调用成功,返回你希望使用的元数据 buffer 的最大大小,单位为字节。最大值为 1024 字节。请确保设置返回值。
所属接口类
registerMediaMetadataObserver
注册元数据观察器。
public abstract int registerMediaMetadataObserver(IMetadataObserver observer, int type);你需要实现 IMetadataObserver 类,并在该方法中指定元数据类型。该方法支持你在视频流中添加同步元数据,以实现更丰富的互动直播场景,例如发送购物链接、数字优惠券和在线问答。成功调用该方法后,SDK 会触发 getMaxMetadataSize 回调。
注: 请在调用 joinChannel 之前调用此方法。
参数
| 参数名 | 描述 |
|---|---|
observer | 元数据观察器,详见 IMetadataObserver。 |
type |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
unregisterMediaMetadataObserver
取消注册指定的元数据观察者。
public abstract int unregisterMediaMetadataObserver(IMetadataObserver observer, int type);参数
| 参数名 | 描述 |
|---|---|
observer | 元数据观察者。详见 IMetadataObserver。 |
type |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
onMetadataReceived
本地用户接收到元数据时触发的回调。
public abstract void onMetadataReceived(AgoraMetadata metadata)触发时机
该回调在本地用户接收到元数据时被触发。
参数
| 参数名 | 描述 |
|---|---|
metadata | 接收到的元数据。详见 AgoraMetadata。 |
所属接口类
onReadyToSendMetadata
SDK 准备好发送元数据时触发的回调。
public abstract byte[] onReadyToSendMetadata(long timeStampMs, int sourceType)注: 请确保元数据的大小不超过 getMaxMetadataSize 回调中设置的值。如果超过该值,SDK 会截除超出部分。
触发时机
该回调在 SDK 准备好发送元数据时被触发。
参数
| 参数名 | 描述 |
|---|---|
timeStampMs | |
sourceType | 视频数据类型。详见 VideoSourceType。 |
返回值
方法调用成功时,返回希望发送的元数据,格式为字节数组。