IMFPMediaItem::SetStartStopPosition, méthode (mfplay.h)
Définit l’heure de début et d’arrêt de l’élément multimédia.
Syntaxe
HRESULT SetStartStopPosition(
[in] const GUID *pguidStartPositionType,
[in] const PROPVARIANT *pvStartValue,
[in] const GUID *pguidStopPositionType,
[in] const PROPVARIANT *pvStopValue
);
Paramètres
[in] pguidStartPositionType
Unité de temps pour la position de début. Consultez la section Notes. Ce paramètre peut être NULL.
[in] pvStartValue
Position de début. La signification et le type de données de ce paramètre sont indiqués par le paramètre pguidStartPositionType . Le paramètre pvStartValue doit être NULL si pguidStartPositionType a la valeur NULL et ne peut pas être NULL dans le cas contraire.
[in] pguidStopPositionType
Unité de temps pour la position d’arrêt. Consultez la section Notes. Ce paramètre peut être NULL.
[in] pvStopValue
Position d’arrêt. La signification et le type de données de ce paramètre sont indiqués par le paramètre pguidStopPositionType . Le paramètre pvStopValue doit être NULL si pguidStopPositionType a la valeur NULL et ne peut pas être NULL dans le cas contraire.
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Code de retour | Description |
---|---|
|
S_OK |
|
Argument non valide. |
|
Heure de début ou d’arrêt non valide. L’un des éléments suivants peut provoquer cette erreur :
|
Notes
Par défaut, un élément multimédia est lu du début à la fin du fichier. Cette méthode ajuste l’heure de début et/ou l’heure d’arrêt :
- Pour définir l’heure de début, passez des valeurs non NULL pour pguidStartPositionType et pvStartValue.
- Pour définir l’heure d’arrêt, passez des valeurs non NULL pour pguidStopPositionType et pvStopValue.
Valeur | Description |
---|---|
MFP_POSITIONTYPE_100NS | Unités de 100 nanosecondes. Le paramètre de temps (pvStartValue ou pvStopValue) utilise le type de données suivant :
|
Les heures de début et d’arrêt ajustées sont utilisées la prochaine fois que IMFPMediaPlayer::SetMediaItem est appelé avec cet élément multimédia. Si l’élément multimédia est déjà défini sur le lecteur, la modification ne se produit pas, sauf si vous appelez à nouveau SetMediaItem .
Exemples
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;
}
Configuration requise
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mfplay.h |