Bagikan melalui


MultiSourceMediaFrameReference Kelas

Definisi

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
Object Platform::Object IInspectable MultiSourceMediaFrameReference
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:

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.

Berlaku untuk

Lihat juga