MediaFrameReference Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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. |