MediaFrameReference Classe

Définition

Classe wrapper qui représente une image obtenue à partir d’un MediaFrameSource. Utilisez les propriétés de cette classe pour accéder au type d’image spécifique fourni par la source, tel qu’un VideoMediaFrame ou un 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
Héritage
Object Platform::Object IInspectable MediaFrameReference
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 Anniversary Edition (introduit dans 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v3.0)

Remarques

Pour obtenir une instance de MediaFrameReference à partir d’une source de trame multimédia, créez un MediaFrameReader en appelant CreateFrameReaderAsync sur un objet MediaCapture qui a été initialisé pour utiliser la source de trame multimédia souhaitée. Une fois que le lecteur d’images a été démarré en appelant StartAsync, appelez TryAcquireLatestFrame pour obtenir un MediaFrameReference représentant la dernière image à partir de la source de trame multimédia.

Chaque MediaFrameReader conserve une mémoire tampon circulaire d’objets MediaFrameReference obtenus à partir de TryAcquireLatestFrame. Une fois que tous les objets MediaFrameReference de la mémoire tampon ont été utilisés, les appels suivants à TryAcquireLatestFrame entraînent l’appel du système à fermer (ou supprimer en C#) sur l’objet de mémoire tampon le plus ancien afin de le réutiliser. Une fois l’objet supprimé, vous ne pouvez plus l’utiliser pour accéder aux données de trame. Pour cette raison, vous ne devez pas stocker l’objet MediaFrameReference plus longtemps que nécessaire pour traiter le frame. Si votre scénario d’application vous oblige à conserver une référence aux données plus longtemps, vous devez utiliser l’une des API fournies pour obtenir les données sous-jacentes. Il s’agit notamment des paramètres suivants :

Il incombe à l’application d’appeler Close (ou Supprimer) sur les objets retournés par ces API lorsqu’ils ne sont plus utilisés.

Important

Si vous accédez aux objets SoftwareBitmap ou Direct3DSurface fournis par la propriété VideoMediaFrame d’un MediaFrameReference, le système crée une référence forte à ces objets, ce qui signifie qu’ils ne seront pas supprimés lorsque vous appelez Disposer sur le MediaFrameReference contenant. Cela s’applique également aux objets SoftwareBitmap ou Direct3DSurface fournis par l’objet VideoFrame que vous obtenez à partir de la propriété MediaFrameReference.VideoMediaFrame . Vous devez appeler la méthode Dispose de SoftwareBitmap ou de Direct3DSurface explicitement et directement pour les objets à supprimer immédiatement. Sinon, le récupérateur de mémoire va libérer de la mémoire pour ces objets. Mais vous ne pouvez pas savoir quand cela se produit, et si le nombre de surfaces ou d’images bitmap allouées dépasse la quantité maximale autorisée par le système, le flux de nouvelles images s’arrête.

Pour obtenir des conseils pratiques sur l’utilisation de MediaFrameSource pour capturer des images, consultez Traiter des trames multimédias avec MediaFrameReader.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1803 17134 AudioMediaFrame

Propriétés

AudioMediaFrame

Obtient l’AudioMediaFrame encapsulé par MediaFrameReference, s’il s’agit du type d’image représenté.

BufferMediaFrame

Obtient le BufferMediaFrame encapsulé par mediaFrameReference, s’il s’agit du type de frame représenté.

CoordinateSystem

Obtient le système de coordonnées spatiales pour la trame multimédia référencée, le cas échéant.

Duration

Obtient la durée de la trame multimédia référencée.

Format

Obtient le format du cadre multimédia de référence.

Properties

Obtient une carte des propriétés pour le cadre référencé.

SourceKind

Obtient le type de MediaFrameSource d’où provient le cadre référencé, tel qu’une couleur, un infrarouge ou une source personnalisée.

SystemRelativeTime

Obtient un horodatage relatif au système et corrélable sur plusieurs sources multimédias sur le même appareil.

VideoMediaFrame

Obtient le VideoMediaFrame encapsulé par mediaFrameReference, s’il s’agit du type d’image représenté.

Méthodes

Close()

Supprime l’objet et les ressources associées.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

S’applique à

Voir aussi