媒体流附属信息分发
metadataMaxSize
请求最大的 metadata 大小。
- (NSInteger)metadataMaxSize;
详情
在成功调用 setMediaMetadataDelegate:withType: 完成注册后,SDK 会在发送每一个视频帧时触发一次该回调;你需要在该方法的返回值中指定 metadata 的最大数据大小。
返回值
指定 metadata 中 buffer 的最大数据大小,单位为 Byte,最大值不超过 1024。请确保在该返回值中进行传参。
所属接口类setMediaMetadataDelegate:withType:
注册媒体 metadata 观测器用于接收或发送 metadata。
- (BOOL)setMediaMetadataDelegate:(id<AgoraMediaMetadataDelegate> _Nullable)metadataDelegate withType:(AgoraMetadataType)type;
详情
你需要自行实现 AgoraMediaMetadataDelegate 类并在本方法中指定 metadata 类型。本方法允许你为视频流添加同步的 metadata,用于多样化的直播互动,如发送购物链接、电子优惠券和在线测试。
调用该方法成功后,SDK 会触发 metadataMaxSize 回调。
参数
- observer
- metadata 观测器。详见 AgoraMediaMetadataDelegate。
- type
metadata 类型。目前仅支持 AgoraMetadataTypeVideo。详见 AgoraMetadataType。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setMediaMetadataDataSource:withType:
设置 metadata 的 Data source。
- (BOOL)setMediaMetadataDataSource:(id<AgoraMediaMetadataDataSource> _Nullable)metadataDataSource withType:(AgoraMetadataType)type;
详情
你需要在该方法中实现一个 AgoraMediaMetadataDataSource 协议,并指定 metadata 的数据类型。成功调用该方法后,SDK 会触发 metadataMaxSize 回调。
该接口可以与 setMediaMetadataDelegate:withType: 接口搭配使用,在直播场景中实现发送商品链接、分发优惠券、发送答题等功能,构建更为丰富的直播互动方式。
参数
- metadataDataSource
- type
metadata 类型。目前仅支持 AgoraMetadataTypeVideo。详见 AgoraMetadataType。
返回值
YES
:方法调用成功。NO
:方法调用失败。详见错误码了解详情和解决建议。
didMetadataReceived:
接收端已收到 metadata。
- (void)didMetadataReceived:(AgoraMetadata * _Nonnull)metadata NS_SWIFT_NAME(didMetadataReceived(_:));
参数
- metadata
- 接收到的 metadata,详见 AgoraMetadata。
readyToSendMetadataAtTimestamp:sourceType:
发送端已准备好发送 metadata。
- (NSData * _Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp
sourceType:(AgoraVideoSourceType)sourceType;
详情
当 SDK 准备好发送 metadata 时,会触发该回调。
参数
- timestamp
- 时间戳。
- sourceType
- 视频数据类型。详见 AgoraVideoSourceType。
返回值
uid
:发送该 metadata 的远端用户的 ID。size
:metadata 的大小。buffer
:metadata 数据。timeStampMs
:metadata 发送时的 NTP 时间戳(ms)。