Condividi tramite


Metodo IMFPMediaItem::SetStartStopPosition (mfplay.h)

Importante Deprecato. Questa API può essere rimossa dalle versioni future di Windows. Le applicazioni devono usare la sessione multimediale per la riproduzione.
 

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
S_OK
Il metodo è riuscito.
E_INVALIDARG
Argomento non valido.
MF_E_OUT_OF_RANGE
Ora di avvio o arresto non valida. Uno dei seguenti può causare questo errore:
  • Ora minore di zero.
  • Tempo maggiore della durata totale dell'elemento multimediale.
  • Ora di arresto inferiore all'ora di inizio.

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.
I parametri pguidStartPositionType e pguidStopPositionType forniscono le unità di tempo usate. Attualmente, l'unico valore supportato è MFP_POSITIONTYPE_100NS.
Valore Descrizione
MFP_POSITIONTYPE_100NS Unità da 100 nanosecondi. Il parametro time (pvStartValue o pvStopValue) usa il tipo di dati seguente:
  • Tipo variant (vt): VT_I8
  • Membro Variant: hVal
Per cancellare un'ora impostata in precedenza, usare un PROPVARIANT vuoto (VT_EMPTY).
 

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

Come riprodurre un clip di file

IMFPMediaItem

Uso di MFPlay per la riproduzione audio/video