Share via


MultiSourceMediaFrameReference Classe

Definizione

Classe wrapper che fornisce l'accesso a fotogrammi correlati al tempo ottenuti da uno o più oggetti MediaFrameSource . Chiamare TryGetFrameReferenceBySourceId per ottenere MediaFrameReference che rappresenta un frame da una determinata origine fotogramma multimediale.

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
Ereditarietà
Object Platform::Object IInspectable MultiSourceMediaFrameReference
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)

Commenti

Per ottenere un'istanza di MultiSourceMediaFrameReference da un'origine fotogramma multimediale, creare un Oggetto MultiSourceMediaFrameReader chiamando CreateMultiSourceFrameReaderAsync su un oggetto MediaCapture , passando gli oggetti MediaFrameSource da cui si vuole leggere. Dopo l'avvio chiamando StartAsync, chiama TryAcquireLatestFrame per ottenere un oggetto MultiSourceMediaFrameReference che contiene i fotogrammi correlati più recenti dalle origini dei fotogrammi multimediali.

Ottenere il fotogramma multimediale correlato al tempo da una determinata origine fotogramma multimediale chiamando MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId e passando il valore della proprietà MediaFrameSourceInfo.Id per l'origine fotogramma multimediale desiderata.

Ogni MultiSourceMediaFrameReader gestisce un buffer circolare di oggetti MediaFrameReference ottenuti da MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId. Dopo l'uso di tutti gli oggetti MediaFrameReference nel buffer, le chiamate successive a TryAcquireLatestFrame causeranno la chiamata di Close (o Dispose in C#) nell'oggetto buffer meno recente per riutilizzarla. Dopo aver eliminato l'oggetto, non è più possibile usarlo per accedere ai dati del frame. Per questo motivo, non è consigliabile archiviare l'oggetto MediaFrameReference più a lungo del necessario per elaborare il frame. Se lo scenario dell'app richiede di mantenere un riferimento ai dati per più tempo, è consigliabile usare una delle API fornite per ottenere i dati sottostanti. Questi metodi includono:

Importante

Se accedi all'oggetto SoftwareBitmap o Direct3DSurface specificato dalla proprietà VideoMediaFrame di un oggetto MediaFrameReference, il sistema crea un riferimento sicuro a questi oggetti, che di conseguenza non vengono eliminati quando chiami Dispose nell'oggetto MediaFrameReference contenitore. Devi chiamare in modo esplicito direttamente il metodo Dispose di SoftwareBitmap o Direct3DSurface perché gli oggetti vengano eliminati immediatamente. In caso contrario, Garbage Collector finirà per liberare la memoria per questi oggetti, ma non saprai quando e se il numero di bitmap o superfici allocate supera la quantità massima consentita dal sistema, il flusso di nuovi fotogrammi si arresterà.

Per indicazioni sull'uso di MediaFrameSource per acquisire fotogrammi, vedere Elaborare fotogrammi multimediali con MediaFrameReader.

Metodi

Close()

Elimina l'oggetto e le risorse associate.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

TryGetFrameReferenceBySourceId(String)

Tenta di ottenere un MediaFrameReference correlato al tempo per l'origine fotogramma multimediale specificata.

Si applica a

Vedi anche