Bagikan melalui


MediaFrameReference Kelas

Definisi

Kelas pembungkus yang mewakili bingkai yang diperoleh dari MediaFrameSource. Gunakan properti kelas ini untuk mengakses jenis bingkai tertentu yang disediakan oleh sumbernya, seperti VideoMediaFrame atau BufferMediaFrame.

public ref class MediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaFrameReference : System.IDisposable
Public NotInheritable Class MediaFrameReference
Implements IDisposable
Warisan
Object Platform::Object IInspectable MediaFrameReference
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 Anniversary Edition (diperkenalkan dalam 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v3.0)

Keterangan

Untuk mendapatkan instans MediaFrameReference dari sumber bingkai media, buat MediaFrameReader dengan memanggil CreateFrameReaderAsync pada objek MediaCapture yang telah diinisialisasi untuk menggunakan sumber bingkai media yang diinginkan. Setelah pembaca bingkai dimulai dengan memanggil StartAsync, panggil TryAcquireLatestFrame untuk mendapatkan MediaFrameReference yang mewakili bingkai terbaru dari sumber bingkai media.

Setiap MediaFrameReader mempertahankan buffer melingkar objek MediaFrameReference yang diperoleh dari TryAcquireLatestFrame. Setelah semua objek MediaFrameReference dalam buffer telah digunakan, panggilan berikutnya ke TryAcquireLatestFrame akan menyebabkan sistem memanggil Tutup (atau Buang di C#) pada objek buffer tertua untuk menggunakannya kembali. Setelah objek dibuang, Anda tidak dapat lagi menggunakannya untuk mengakses data bingkai. Untuk alasan ini, Anda tidak boleh menyimpan objek MediaFrameReference lebih lama dari yang sebenarnya Anda butuhkan untuk memproses bingkai. Jika skenario aplikasi mengharuskan Anda menyimpan referensi ke data lebih lama, Anda harus menggunakan salah satu API yang disediakan untuk mendapatkan data yang mendasarinya. Ini termasuk:

Aplikasi bertanggung jawab untuk memanggil Tutup (atau Buang) pada objek yang dikembalikan oleh API ini ketika tidak lagi digunakan.

Penting

Jika Anda mengakses objek SoftwareBitmap atau Direct3DSurface yang disediakan oleh properti VideoMediaFrame dari MediaFrameReference, sistem membuat referensi yang kuat ke objek ini, yang berarti bahwa objek tersebut tidak akan dibuang saat Anda memanggil Buang pada MediaFrameReference yang berisi. Ini juga berlaku untuk objek SoftwareBitmap atau Direct3DSurface yang disediakan oleh objek VideoFrame yang Anda peroleh dari properti MediaFrameReference.VideoMediaFrame . Anda harus secara eksplisit memanggil metode BuangSoftwareBitmap atau Direct3DSurface secara langsung agar objek segera dibuang. Jika tidak, pengumpul sampah pada akhirnya akan membebaskan memori untuk objek-objek ini, tetapi Anda tidak dapat tahu kapan ini akan terjadi, dan jika jumlah bitmap atau permukaan yang dialokasikan melebihi jumlah maksimum yang diizinkan oleh sistem, aliran bingkai baru akan berhenti.

Untuk panduan cara menggunakan MediaFrameSource untuk mengambil bingkai, lihat Memproses bingkai media dengan MediaFrameReader.

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
1803 17134 AudioMediaFrame

Properti

AudioMediaFrame

Mendapatkan AudioMediaFrame yang dibungkus oleh MediaFrameReference, jika itu adalah jenis bingkai yang diwakili.

BufferMediaFrame

Mendapatkan BufferMediaFrame yang dibungkus oleh MediaFrameReference, jika itu adalah jenis bingkai yang diwakili.

CoordinateSystem

Mendapatkan sistem koordinat spasial untuk bingkai media yang dirujuk, jika ditentukan.

Duration

Mendapatkan durasi bingkai media yang dirujuk.

Format

Mendapatkan format bingkai media referensi.

Properties

Mendapatkan peta properti untuk bingkai yang dirujuk.

SourceKind

Mendapatkan jenis MediaFrameSource dari mana bingkai yang dirujuk berasal, seperti warna, inframerah, atau sumber kustom.

SystemRelativeTime

Mendapatkan tanda waktu yang relatif terhadap sistem dan dapat dikorelasikan di beberapa sumber media pada perangkat yang sama.

VideoMediaFrame

Mendapatkan VideoMediaFrame yang dibungkus oleh MediaFrameReference, jika itu adalah jenis bingkai yang diwakili.

Metode

Close()

Membuang objek dan sumber daya terkait.

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola.

Berlaku untuk

Lihat juga