MultiSourceMediaFrameReference 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 menyediakan akses ke bingkai berkorelasi waktu yang diperoleh dari satu atau beberapa objek MediaFrameSource . Panggil TryGetFrameReferenceBySourceId untuk mendapatkan MediaFrameReference yang mewakili bingkai dari sumber bingkai media tertentu.
public ref class MultiSourceMediaFrameReference sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MultiSourceMediaFrameReference final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MultiSourceMediaFrameReference : System.IDisposable
Public NotInheritable Class MultiSourceMediaFrameReference
Implements IDisposable
- Warisan
- Atribut
- Penerapan
Persyaratan Windows
Rangkaian perangkat |
Windows 10 Creators Update (diperkenalkan dalam 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v4.0)
|
Keterangan
Untuk mendapatkan instans MultiSourceMediaFrameReference dari sumber bingkai media, buat MultiSourceMediaFrameReader dengan memanggil CreateMultiSourceFrameReaderAsync pada objek MediaCapture , melewati objek MediaFrameSource tempat Anda ingin membaca. Setelah memulai dengan memanggil StartAsync, panggil TryAcquireLatestFrame untuk mendapatkan MultiSourceMediaFrameReference yang berisi bingkai berkorelasi terbaru dari sumber bingkai media.
Dapatkan bingkai media berkorelasi waktu dari sumber bingkai media tertentu dengan memanggil MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId dan meneruskan nilai properti MediaFrameSourceInfo.Id untuk sumber bingkai media yang diinginkan.
Setiap MultiSourceMediaFrameReader mempertahankan buffer melingkar objek MediaFrameReference yang diperoleh dari MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId. 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. Metode ini meliputi:
- BufferMediaFrame.Buffer
- VideoMediaFrame.SoftwareBitmap
- VideoMediaFrame.GetVideoFrame
- VideoMediaFrame.CameraIntrinsics Adalah tanggung jawab aplikasi 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. 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.
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. |
TryGetFrameReferenceBySourceId(String) |
Mencoba untuk mendapatkan MediaFrameReference yang berkorelasi waktu untuk sumber bingkai media yang ditentukan. |