MultiSourceMediaFrameReference 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 fournit l’accès à des images corrélées dans le temps obtenues à partir d’un ou plusieurs objets MediaFrameSource . Appelez TryGetFrameReferenceBySourceId pour obtenir le MediaFrameReference représentant une image à partir d’une source de trame multimédia particulière.
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
- Héritage
- Attributs
- Implémente
Configuration requise pour Windows
Famille d’appareils |
Windows 10 Creators Update (introduit dans 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v4.0)
|
Remarques
Pour obtenir une instance de MultiSourceMediaFrameReference à partir d’une source de trame multimédia, créez un MultiSourceMediaFrameReader en appelant CreateMultiSourceFrameReaderAsync sur un objet MediaCapture, en passant les objets MediaFrameSource à partir desquels vous souhaitez lire. Après avoir commencé en appelant StartAsync, appelez TryAcquireLatestFrame pour obtenir un MultiSourceMediaFrameReference qui contient les dernières images corrélées provenant des sources de trames multimédias.
Obtenez l’image multimédia corrélée dans le temps à partir d’une source de trame multimédia particulière en appelant MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId et en transmettant la valeur de la propriété MediaFrameSourceInfo.Id pour la source de trame multimédia souhaitée.
Chaque MultiSourceMediaFrameReader conserve une mémoire tampon circulaire d’objets MediaFrameReference obtenus à partir de MultiSourceMediaFrameReference.TryGetFrameReferenceBySourceId. 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. Ces méthodes incluent les tâches suivantes :
- BufferMediaFrame.Buffer
- VideoMediaFrame.SoftwareBitmap
- VideoMediaFrame.GetVideoFrame
- VideoMediaFrame.CameraIntrinsics 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. Autrement dit, ils ne sont pas supprimés lorsque vous appelez Dispose sur le conteneur MediaFrameReference. 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.
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. |
TryGetFrameReferenceBySourceId(String) |
Tente d’obtenir un MediaFrameReference corrélé dans le temps pour la source de trame multimédia spécifiée. |