struttura KSAUDIO_POSITION (ksmedia.h)
La struttura KSAUDIO_POSITION specifica le posizioni correnti dei cursori di riproduzione e scrittura nel buffer audio per un flusso audio.
Sintassi
typedef struct {
#if ...
ULONGLONG PlayOffset;
#if ...
ULONGLONG WriteOffset;
#else
DWORDLONG PlayOffset;
#endif
#else
DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
Membri
PlayOffset
Specifica la posizione di riproduzione corrente come offset di byte.
WriteOffset
Specifica la posizione di scrittura corrente come offset di byte.
Osservazioni
Questa struttura viene utilizzata per ottenere e impostare il valore dei dati per la proprietà KSPROPERTY_AUDIO_POSITION.
Per un buffer client a ciclo (con tipo di flusso KSINTERFACE_STANDARD_LOOPED_STREAMING), PlayOffset e WriteOffset sono offset di byte nel buffer client. Quando uno degli offset raggiunge la fine del buffer, esegue il wrapping all'inizio del buffer. Di conseguenza, nessun offset supera mai le dimensioni del buffer.
Per un buffer client nonlooped (con tipo di flusso KSINTERFACE_STANDARD_STREAMING), PlayOffset e WriteOffset non sono offset in un buffer fisico allocato dal driver o da un client allocato. Questi offset sono invece relativi al flusso e possono essere considerati come offset in un buffer idealizzato che contiene l'intero flusso ed è contiguo dall'inizio alla fine. Eventuali offset interni che puntano ai buffer fisici effettivi che contengono i dati devono essere mantenuti separatamente.
Durante la riproduzione, i valori PlayOffset e WriteOffset vengono interpretati come segue:
- PlayOffset è l'offset dell'ultimo byte nel buffer riprodotto. PlayOffset + 1 è l'offset del byte successivo che verrà riprodotto.
- WriteOffset è l'offset dell'ultimo byte nel buffer di riproduzione.
Durante la registrazione, i valori PlayOffset PlayOffset e writeOffset vengono interpretati come segue:
- PlayOffset è l'offset dell'ultimo byte nel buffer acquisito. PlayOffset + 1 è l'offset del byte successivo che verrà acquisito.
- writeOffset è l'offset dell'ultimo byte nel buffer di acquisizione.
Lo spazio tra PlayOffset e WriteOffset viene considerato off-limits per il client perché rappresenta la parte del buffer client che è già stato inviato al driver e potrebbe essere ancora in uso dal driver.
Per altre informazioni, vedere proprietà Posizione audio.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ksmedia.h (include Ksmedia.h) |
Vedere anche
KSINTERFACE_STANDARD_LOOPED_STREAMING