Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’indexeur ASF est un composant de couche WMContainer utilisé pour lire ou écrire des objets index dans un fichier ASF (Advanced Systems Format). Cette rubrique fournit des informations sur la création de l’objet indexeur par défaut fourni par Media Foundation.
Pour plus d’informations sur la structure d’un fichier ASF, consultez structure de fichiers ASF.
Pour créer et initialiser l’indexeur ASF
Appelez la fonction MFCreateASFIndexer pour recevoir un pointeur IMFASFIndexer vers l’objet indexeur.
Appelez IMFASFIndexer ::SetFlags pour spécifier le mode lecture ou écriture de l’objet indexeur. Par défaut, l’indexeur est configuré pour la recherche vers l’avant.
Utiliser Drapeau Lecture (recherche vers l’avant) Zéro (valeur par défaut) Lecture (recherche inversée) MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK Écriture MFASF_INDEXER_WRITE_NEW_INDEX Note
Impossible d’utiliser la même instance de l’indexeur pour la lecture et l’écriture. Vous devez configurer l’indexeur pour l’un ou l’autre.
Appelez IMFASFIndexer ::Initialize pour initialiser l’indexeur en spécifiant le pointeur IMFASFContentInfo de l’objet ContentInfo qui décrit le fichier à écrire ou lire. L’objet ContentInfo contient des informations qui constituent l’objet d’en-tête ASF . L’objet indexeur nécessite un objet ContentInfo valide avant de générer ou de lire des entrées d’index d’un fichier ASF.
L’exemple de code suivant montre comment une application peut créer et initialiser l’objet indexeur pour utiliser du contenu ASF spécifique. L’objet ContentInfo représente l’objet d’en-tête ASF ; le contenu est passé en tant que flux d’octets.
HRESULT CreateASFIndexer(
IMFASFContentInfo* pContentInfo,
DWORD dwFlags,
IMFASFIndexer** ppIndexer
)
{
*ppIndexer = NULL;
IMFASFIndexer *pIndexer = NULL;
HRESULT hr = MFCreateASFIndexer(&pIndexer);
if (FAILED(hr))
{
goto done;
}
hr = pIndexer->SetFlags(dwFlags);
if (FAILED(hr))
{
goto done;
}
hr = pIndexer->Initialize(pContentInfo);
if (FAILED(hr))
{
goto done;
}
// Return the object to the caller.
*ppIndexer = pIndexer;
(*ppIndexer)->AddRef();
done:
// Clean up.
SafeRelease(&pIndexer);
return hr;
}
Rubriques connexes