Comment lire un clip de fichier
[MFPlay est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. ]
Cette rubrique explique comment lire un segment d’un fichier multimédia dans MFPlay, en définissant les heures de début et d’arrêt pour la lecture.
Pour lire un clip de fichier
- Appelez IMFPMediaPlayer::CreateMediaItemFromURL ou IMFPMediaPlayer::CreateMediaItemFromObject pour créer un élément multimédia pour le fichier.
- Si vous le souhaitez, obtenez la durée totale du fichier, comme décrit dans Comment obtenir la durée de lecture.
- Appelez IMFPMediaItem::SetStartStopPosition pour définir les heures de début et d’arrêt. L’heure d’arrêt ne doit pas dépasser la durée du fichier.
- Appelez IMFPMediaPlayer::SetMediaItem pour démarrer la lecture.
L’exemple suivant utilise la version bloquante de CreateMediaItemFromURL. Si la version non bloquante est utilisée, le code qui apparaît après CreateMediaItemFromURL doit être placé dans le gestionnaire pour l’événement MFP_EVENT_TYPE_MEDIAITEM_CREATED . Pour plus d’informations sur les événements dans MFPlay, consultez Réception d’événements du lecteur.
Pour obtenir la durée du fichier, cet exemple appelle la GetPlaybackDuration
fonction présentée dans la rubrique Comment obtenir la durée de lecture.
HRESULT PlayMediaClip(
IMFPMediaPlayer *pPlayer,
PCWSTR pszURL,
LONGLONG hnsStart,
LONGLONG hnsEnd
)
{
IMFPMediaItem *pItem = NULL;
PROPVARIANT varStart, varEnd;
ULONGLONG hnsDuration = 0;
HRESULT hr = pPlayer->CreateMediaItemFromURL(pszURL, TRUE, 0, &pItem);
if (FAILED(hr))
{
goto done;
}
hr = GetPlaybackDuration(pItem, &hnsDuration);
if (FAILED(hr))
{
goto done;
}
if ((ULONGLONG)hnsEnd > hnsDuration)
{
hnsEnd = hnsDuration;
}
hr = InitPropVariantFromInt64(hnsStart, &varStart);
if (FAILED(hr))
{
goto done;
}
hr = InitPropVariantFromInt64(hnsEnd, &varEnd);
if (FAILED(hr))
{
goto done;
}
hr = pItem->SetStartStopPosition(
&MFP_POSITIONTYPE_100NS,
&varStart,
&MFP_POSITIONTYPE_100NS,
&varEnd
);
if (FAILED(hr))
{
goto done;
}
hr = pPlayer->SetMediaItem(pItem);
done:
SafeRelease(&pItem);
return hr;
}
Spécifications
MFPlay nécessite Windows 7.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour