Share via


Metodo IMFMediaSink::SetPresentationClock (mfidl.h)

Imposta l'orologio della presentazione sul sink multimediale.

Sintassi

HRESULT SetPresentationClock(
  [in] IMFPresentationClock *pPresentationClock
);

Parametri

[in] pPresentationClock

Puntatore all'interfaccia FMPresentationClock dell'orologio della presentazione o NULL. Se il valore è NULL, il sink multimediale smette di ascoltare l'orologio della presentazione impostato in precedenza, se presente.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
MF_E_CLOCK_NO_TIME_SOURCE
L'orologio della presentazione non ha un'origine temporale. Chiamare SetTimeSource nell'orologio della presentazione.
MF_E_SHUTDOWN
Il metodo Shutdown del sink multimediale è stato chiamato.

Commenti

Durante lo streaming, il sink multimediale tenta di corrispondere alle tariffe con l'orologio della presentazione. Idealmente, il sink multimediale presenta campioni al momento corretto in base all'orologio della presentazione e non cade dietro. I sink multimediali senza frequenza sono un'eccezione a questa regola, man mano che utilizzano campioni il più rapidamente possibile e ignorano l'orologio. Se il sink è senza frequenza, il metodo FMMediaSink::GetCharacteristics restituisce il flag di MEDIASINK_RATELESS.

L'orologio della presentazione deve avere un'origine temporale. Prima di chiamare questo metodo, chiamare FMPresentationClock::SetTimeSource nell'orologio della presentazione per impostare l'origine dell'ora di presentazione. Alcuni sink multimediali forniscono origini temporali; pertanto, il sink multimediale potrebbe essere l'origine temporale per il proprio orologio di presentazione. Indipendentemente dall'oggetto fornito dall'origine temporale, tuttavia, il sink multimediale deve tentare di trovare una corrispondenza con il clock specificato in pPresentationClock. Se un sink multimediale non può corrispondere alle tariffe con un'origine temporale esterna, il metodo FMMediaSink::GetCharacteristics recupera il flag di MEDIASINK_CANNOT_MATCH_CLOCK. In questo caso , SetPresentationClock avrà esito positivo, ma i risultati non saranno ottimali. Il sink potrebbe non eseguire il rendering di campioni abbastanza rapidamente per corrispondere alle tariffe con l'orologio della presentazione.

Se pPresentationClock non è NULL, il sink multimediale deve registrare le notifiche sullo stato dell'orologio chiamando FMPresentationClock::AddClockStateSink nell'orologio della presentazione. Se il metodo viene chiamato di nuovo con un nuovo orologio di presentazione o se pPresentationClock è NULL, il sink multimediale deve chiamare FMPresentationClock::RemoveClockStateSink per deregister se stesso dall'orologio precedente.

Tutti i sink multimediali devono supportare questo metodo.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mfidl.h
Libreria Mfuuid.lib

Vedi anche

FMMediaSink

Sink multimediali

Orologio presentazione