Metodo IMFPMediaItem::SetStartStopPosition (mfplay.h)
Imposta l'ora di inizio e arresto per l'elemento multimediale.
Sintassi
HRESULT SetStartStopPosition(
[in] const GUID *pguidStartPositionType,
[in] const PROPVARIANT *pvStartValue,
[in] const GUID *pguidStopPositionType,
[in] const PROPVARIANT *pvStopValue
);
Parametri
[in] pguidStartPositionType
Unità di tempo per la posizione iniziale. Vedere la sezione Osservazioni. Questo parametro può essere NULL.
[in] pvStartValue
Posizione iniziale. Il significato e il tipo di dati di questo parametro sono indicati dal parametro pguidStartPositionType . Il parametro pvStartValue deve essere NULL se pguidStartPositionType è NULL e non può essere NULL in caso contrario.
[in] pguidStopPositionType
Unità di tempo per la posizione di arresto. Vedere la sezione Osservazioni. Questo parametro può essere NULL.
[in] pvStopValue
Arrestare la posizione. Il significato e il tipo di dati di questo parametro sono indicati dal parametro pguidStopPositionType . Il parametro pvStopValue deve essere NULL se pguidStopPositionType è NULL e non può essere NULL in caso contrario.
Valore restituito
Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
Argomento non valido. |
|
Ora di avvio o arresto non valida. Uno dei seguenti può causare questo errore:
|
Commenti
Per impostazione predefinita, un elemento multimediale viene riprodotto dall'inizio alla fine del file. Questo metodo regola l'ora di inizio e/o l'ora di arresto:
- Per impostare l'ora di inizio, passare valori non NULL per pguidStartPositionType e pvStartValue.
- Per impostare l'ora di arresto, passare valori non NULL per pguidStopPositionType e pvStopValue.
Valore | Descrizione |
---|---|
MFP_POSITIONTYPE_100NS | Unità da 100 nanosecondi. Il parametro time (pvStartValue o pvStopValue) usa il tipo di dati seguente:
|
Le ore di inizio e di arresto modificate vengono usate alla successiva chiamata di IMFPMediaPlayer::SetMediaItem con questo elemento multimediale. Se l'elemento multimediale è già impostato sul lettore, la modifica non viene eseguita a meno che non si chiami di nuovo SetMediaItem .
Esempio
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | mfplay.h |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per