Condividi tramite


Metodo IAsyncReader::SyncReadAligned (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il SyncReadAligned metodo esegue una lettura sincrona. Il metodo si blocca fino al completamento della richiesta. Le posizioni del file e l'indirizzo del buffer devono essere allineati; controllare le proprietà dell'allocatore per l'allineamento richiesto.

Sintassi

HRESULT SyncReadAligned(
  IMediaSample *pSample
);

Parametri

pSample

Puntatore all'interfaccia IMediaSample di un campione multimediale fornito dal chiamante.

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
VFW_E_BADALIGN
Allineamento non valido.
S_FALSE
È stato recuperato un numero inferiore di byte rispetto a quello richiesto. Probabilmente la fine del file è stata raggiunta.
S_OK
Operazione completata.

Commenti

Prima di chiamare questo metodo, recuperare un campione multimediale dall'allocatore del pin. Timestamp dell'esempio con gli offset di byte richiesti, first e last inclusive, moltiplicati per 10.000.000. Gli offset di byte sono relativi all'inizio del flusso.

Le posizioni di inizio e arresto devono corrispondere all'allineamento che è stato deciso quando i pin sono connessi. In caso contrario, il metodo restituisce VFW_E_BADALIGN. Se l'allineamento concordato è più grossolano rispetto all'allineamento effettivo del flusso, la posizione di interruzione potrebbe superare la durata reale. In tal caso, il metodo arrotonda la posizione di arresto verso il basso fino all'allineamento effettivo.

Questo metodo esegue una lettura non memorizzata nel buffer, quindi potrebbe essere più veloce del metodo IAsyncReader::SyncRead .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia IAsyncReader