

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Kinesis 影片串流中內嵌的中繼資料
<a name="how-meta-consume"></a>

若要使用 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");
	    }
    }
}
```

此界面位於 [使用剖析器程式庫監看攝影機的輸出](parser-library.md) 中的 [FragmentMetadataVisitor](parser-library-write.md#parser-library-write-FMV) 類別​。

`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` 清除收集的中繼資料，然後再次擷取中繼資料項目。