AppCaptureMetadataWriter 類別

定義

可讓應用程式儲存系統將插入所擷取影片檔案或廣播應用程式內容串流的中繼資料。

public ref class AppCaptureMetadataWriter sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Media.Capture.AppCaptureMetadataContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class AppCaptureMetadataWriter final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Media.Capture.AppCaptureMetadataContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Media.Capture.AppCaptureMetadataContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class AppCaptureMetadataWriter : System.IDisposable
function AppCaptureMetadataWriter()
Public NotInheritable Class AppCaptureMetadataWriter
Implements IDisposable
繼承
Object Platform::Object IInspectable AppCaptureMetadataWriter
屬性
實作

Windows 需求

裝置系列
Windows Desktop Extension SDK (已於 10.0.16299.0 引進)
API contract
Windows.Media.Capture.AppCaptureMetadataContract (已於 v1.0 引進)

備註

當您建立 AppCaptureMetadataWriter的實例時,系統會初始化應用程式的唯一實例,然後準備好撰寫中繼資料專案。 雖然一次只能擷取或廣播一個應用程式,但系統可以同時累積多個應用程式的中繼資料。 AppCaptureMetadataWriter 不會起始或修改目前的擷取或廣播狀態。 您應該建立並保留 AppCaptureMetadataWriter 實例,只要您想要讓系統將中繼資料保存在記憶體中即可。 當 AppCaptureMetadataWriter 的實例發行時,也會發行與 該 AppCaptureMetadataWriter 實例相關聯的所有中繼資料。

當您撰寫中繼資料專案時,系統會將時間戳記與專案建立關聯,使其自動包含在所擷取或廣播套用的時間範圍中。

目前支援兩種不同類型的中繼資料專案 AppCaptureMetadataWriter:事件和狀態。 中繼資料事件與單一時間點相關聯,而且通常與即時動作相關聯,例如遊戲評分點中的玩家。 狀態是跨時間範圍套用的中繼資料專案。 其中一個範例是狀態,其中包含玩家目前所在的遊戲地圖名稱。 設定狀態值之後,系統會維護該狀態的值,直到它設定為不同的值、直到停止呼叫 StopState為止,或直到所有狀態都以 StopAllStates的通話結束為止。 事件和狀態都會以索引鍵/值組表示,其中索引鍵是狀態或事件名稱,而值是整數、雙精度浮點數或字串值。

啟用歷程記錄應用程式擷取時,即使未主動擷取或廣播,系統也會累積以 AppCaptureMetadataWriter 撰寫的中繼資料。 例如,當前 30 秒的擷取寫入磁片上的視訊檔案時,與錄製時間範圍相關聯的中繼資料會包含在檔案中。 系統會限制每個應用程式所配置的儲存空間,以儲存累積的中繼資料。 您可以藉由檢查 RemainingStorageBytesAvailable 屬性來取得目前可用的儲存空間。

當已填滿所有配置的空間時,系統會使用 AppCaptureMetadataPriority 值開始清除中繼資料,並在寫入中繼資料專案時指定,以及每個專案的存留期,以便先刪除最舊、最不重要的資料。 發生這種情況時,會引發 MetadataPurged 事件。 為了回應此事件,您可以選擇減少應用程式正在寫入的中繼資料數量,但這並非必要專案。

中繼資料專案會分類為 [重要 ] 或 [ 資訊] ,如 AppCaptureMetadataPriority 列舉所指定。 重要 優先順序表示中繼資料會上傳至 Xbox Live 服務。 中繼資料將用來協助使用者搜尋剪輯或標注廣播,以及其他專案。 [重要資訊] 和[資訊中繼資料] 都會內嵌在產生的 .mp4 檔案中,因此您不應該在中繼資料中包含任何私人使用者資訊。

如果背景服務因為閒置逾時而關閉,此 API 可能會擲回錯誤。

建構函式

AppCaptureMetadataWriter()

初始化 AppCaptureMetadataWriter 類別的新實例。

屬性

RemainingStorageBytesAvailable

取得系統為應用程式擷取中繼資料專案配置之儲存空間中剩餘的位元組數目。

方法

AddDoubleEvent(String, Double, AppCaptureMetadataPriority)

加入新的雙精度浮點數中繼資料事件。

AddInt32Event(String, Int32, AppCaptureMetadataPriority)

加入新的整數中繼資料事件。

AddStringEvent(String, String, AppCaptureMetadataPriority)

加入新的字串中繼資料事件。

Close()

處置物件和相關聯的資源。

Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

StartDoubleState(String, Double, AppCaptureMetadataPriority)

加入新的雙精度浮點數中繼資料狀態。

StartInt32State(String, Int32, AppCaptureMetadataPriority)

加入新的雙精度浮點數中繼資料狀態。

StartStringState(String, String, AppCaptureMetadataPriority)

加入新的雙精度浮點數中繼資料狀態。

StopAllStates()

停止所有中繼資料狀態。

StopState(String)

停止具有指定識別碼的中繼資料狀態。

事件

MetadataPurged

發生于系統清除先前儲存的中繼資料專案時。

適用於