本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Kinesis 视频流中嵌入的元数据
要使用 Kinesis 视频流中的元数据,请使用以下实现:MkvTagProcessor
public interface MkvTagProcessor { default void process(MkvTag mkvTag, Optional<FragmentMetadata> currentFragmentMetadata) { throw new NotImplementedException("Default FragmentMetadataVisitor.MkvTagProcessor"); } default void clear() { throw new NotImplementedException("Default FragmentMetadataVisitor.MkvTagProcessor"); } } }
在 使用解析器库观看摄像机的输出的 FragmentMetadataVisitor 类中可找到此接口。
FragmentMetadataVisitor
类包含 MkvTagProcessor
的实现:
public static final class BasicMkvTagProcessor implements FragmentMetadataVisitor.MkvTagProcessor { @Getter private List<MkvTag> tags = new ArrayList<>(); @Override public void process(MkvTag mkvTag, Optional<FragmentMetadata> currentFragmentMetadata) { tags.add(mkvTag); } @Override public void clear() { tags.clear(); } }
KinesisVideoRendererExample
类包含演示如何使用 BasicMkvTagProcessor
的示例。以下示例将 BasicMkvTagProcessor
添加到应用程序的 MediaProcessingArguments
中:
if (renderFragmentMetadata) { getMediaProcessingArguments = KinesisVideoRendererExample.GetMediaProcessingArguments.create( Optional.of(new FragmentMetadataVisitor.BasicMkvTagProcessor()));
在片段元数据送达时调用 BasicMkvTagProcessor.process
方法。您可以使用 GetTags
检索累积的元数据。要检索单个元数据项,请先调用clear
以清除收集的元数据,然后再次检索元数据项目。