Freigeben über


KSAUDIO_POSITION Struktur (ksmedia.h)

Die KSAUDIO_POSITION-Struktur gibt die aktuellen Positionen der Wiedergabe- und Schreibcursor im Soundpuffer für einen Audiodatenstrom an.

Syntax

typedef struct {
#if ...
  ULONGLONG PlayOffset;
#if ...
  ULONGLONG WriteOffset;
#else
  DWORDLONG PlayOffset;
#endif
#else
  DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;

Angehörige

PlayOffset

Gibt die aktuelle Wiedergabeposition als Byte-Offset an.

WriteOffset

Gibt die aktuelle Schreibposition als Byteoffset an.

Bemerkungen

Diese Struktur wird verwendet, um den Datenwert für die eigenschaft KSPROPERTY_AUDIO_POSITION abzurufen und festzulegen.

Bei einem Schleifenclientpuffer (mit Streamtyp KSINTERFACE_STANDARD_LOOPED_STREAMING) sind PlayOffset- und WriteOffset- Byte-Offsets in den Clientpuffer. Wenn ein Offset das Ende des Puffers erreicht, wird er an den Anfang des Puffers umgebrochen. Daher überschreitet kein Offset jemals die Puffergröße.

Bei einem nicht geloopten Clientpuffer (mit Streamtyp KSINTERFACE_STANDARD_STREAMING) werden PlayOffset- und WriteOffset- nicht in einen physischen Puffer versetzt, den Der Treiber zugewiesen hat oder ein Client zugewiesen wurde. Stattdessen sind diese Offsets streamrelativ und können als Offsets in einem idealisierten Puffer betrachtet werden, der den gesamten Datenstrom enthält und von Anfang bis Ende zusammenhängend ist. Alle internen Offsets, die auf die tatsächlichen physischen Puffer verweisen, die die Daten enthalten, müssen separat verwaltet werden.

Während der Wiedergabe werden die PlayOffset- und WriteOffset Werte wie folgt interpretiert:

  • PlayOffset- ist der Offset des letzten Byte im Puffer, der wiedergegeben wurde. PlayOffset + 1 ist der Offset des nächsten Byte, das wiedergegeben wird.
  • WriteOffset- ist der Offset des letzten Byte im Wiedergabepuffer.
Wenn ein Client einen anderen Puffer zur Wiedergabe an das Gerät sendet, wird WriteOffset- nach Eingang dieses Puffers erhöht, um den neuen WriteOffset--Wert anzugeben, aber PlayOffset ändert sich erst, nachdem dieser Puffer tatsächlich vom Gerät wiedergegeben wurde.

Während der Aufzeichnung werden die PlayOffset- und WriteOffset- Werte wie folgt interpretiert:

  • PlayOffset- ist der Offset des letzten Byte im Puffer, der erfasst wurde. PlayOffset- + 1 ist der Offset des nächsten Byte, das erfasst wird.
  • WriteOffset- ist der Offset des letzten Byte im Aufnahmepuffer.
Wenn eine Anwendung einen anderen Puffer zum Erfassen an das Gerät sendet, wird der WriteOffset Wert nach Eingang dieses Puffers erhöht. Der PlayOffset-wert ändert sich erst, wenn die Daten tatsächlich in den Puffer aufgenommen wurden.

Der Abstand zwischen PlayOffset- und WriteOffset- gilt als Off-Limits für den Client, da er den Teil des Clientpuffers darstellt, der bereits an den Treiber gesendet wurde und möglicherweise noch vom Treiber verwendet wird.

Weitere Informationen finden Sie unter AudioPosition-Eigenschaft.

Anforderungen

Anforderung Wert
Header- ksmedia.h (enthalten Ksmedia.h)

Siehe auch

KSINTERFACE_STANDARD_LOOPED_STREAMING

KSINTERFACE_STANDARD_STREAMING

KSPROPERTY_AUDIO_POSITION