MediaFrameReference Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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. |