媒体流附属信息分发
- macOS
更新时间不可用
metadataMaxSize
当 SDK 请求元数据的最大大小时触发。
- (NSInteger)metadataMaxSize NS_SWIFT_NAME(metadataMaxSize());调用 setMediaMetadataDelegate:withType: 方法成功注册后,SDK 每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。
返回值
方法调用成功,返回你希望使用的元数据缓冲区的最大大小,单位为字节。最大值为 1024 字节。
所属接口类
readyToSendMetadataAtTimestamp:sourceType:
当 SDK 准备好发送元数据时触发回调。
- (NSData * _Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(readyToSendMetadata(atTimestamp:sourceType:));该回调在 SDK 准备好发送元数据时触发。
注: 请确保元数据的大小不超过 metadataMaxSize 回调中设置的值。如果超过该值,SDK 会截除超出部分。
调用时机
当 SDK 准备好发送元数据时触发。
参数
| 参数名 | 描述 |
|---|---|
timestamp | |
sourceType | 视频数据类型,详见 AgoraVideoSourceType。 |
返回值
你希望发送的元数据,格式为 NSData,包含以下参数:
uid:发送元数据的远端用户 ID。size:元数据的大小。buffer:元数据内容。timeStampMs:发送元数据时的 NTP 时间戳(毫秒)。
所属接口类
setMediaMetadataDelegate:withType:
注册元数据观察者。
- (BOOL)setMediaMetadataDelegate:(id<AgoraMediaMetadataDelegate> _Nullable)metadataDelegate withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDelegate(_:with:));你需要实现 AgoraMediaMetadataDelegate 协议,并在该方法中指定元数据类型。该方法使你能够在视频流中添加同步的元数据,以实现更丰富的直播互动场景,例如发送购物链接、数字优惠券和在线问答。
注: 请在调用 joinChannelByToken 之前调用该方法。
参数
| 参数名 | 描述 |
|---|---|
metadataDelegate | 元数据观察者,详见 AgoraMediaMetadataDelegate。 |
type | 元数据类型,详见 AgoraMetadataType。当前 SDK 仅支持 |
返回值
- YES:方法调用成功。
- NO:方法调用失败。
所属接口类
setMediaMetadataDataSource:withType:
设置元数据的数据源。
- (BOOL)setMediaMetadataDataSource:(id<AgoraMediaMetadataDataSource> _Nullable)metadataDataSource withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDataSource(_:with:));你需要在该方法中实现 AgoraMediaMetadataDataSource 协议,并指定元数据的数据格式。成功调用该方法后,SDK 会触发 metadataMaxSize 回调。你可以结合 setMediaMetadataDelegate:withType: 方法,在视频流中添加同步的元数据,实现更丰富的直播互动,例如发送购物链接、数字优惠券和在线问答。
注: 该方法需要在加入频道前调用。
参数
| 参数名 | 描述 |
|---|---|
metadataDataSource | 元数据的数据源,需实现 AgoraMediaMetadataDataSource 协议。详见 AgoraMediaMetadataDataSource。 |
type | 元数据的类型,详见 AgoraMetadataType。SDK 当前仅支持 |
返回值
- YES:方法调用成功。
- NO:方法调用失败。
所属接口类
didMetadataReceived:
当本地用户接收到元数据时触发。
- (void)didMetadataReceived:(AgoraMetadata * _Nonnull)metadata NS_SWIFT_NAME(didMetadataReceived(_:));触发时机
该回调在本地用户接收到元数据时被触发。
参数
| 参数名 | 描述 |
|---|---|
metadata | 接收到的元数据。详见 AgoraMetadata。 |