KSAUDIO_POSITION 구조체(ksmedia.h)
KSAUDIO_POSITION 구조체는 오디오 스트림의 사운드 버퍼에서 재생 및 쓰기 커서의 현재 위치를 지정합니다.
구문
typedef struct {
#if ...
ULONGLONG PlayOffset;
#if ...
ULONGLONG WriteOffset;
#else
DWORDLONG PlayOffset;
#endif
#else
DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
멤버
PlayOffset
현재 재생 위치를 바이트 오프셋으로 지정합니다.
WriteOffset
현재 쓰기 위치를 바이트 오프셋으로 지정합니다.
설명
이 구조체는 KSPROPERTY_AUDIO_POSITION 속성의 데이터 값을 가져와서 설정하는 데 사용됩니다.
루프된 클라이언트 버퍼의 경우(스트림 유형 이 KSINTERFACE_STANDARD_LOOPED_STREAMING), PlayOffset 및 WriteOffset 은 클라이언트 버퍼에 대한 바이트 오프셋입니다. 두 오프셋이 버퍼의 끝에 도달하면 버퍼의 시작 부분까지 래핑됩니다. 따라서 두 오프셋 모두 버퍼 크기를 초과하지 않습니다.
스트림 유형 이 KSINTERFACE_STANDARD_STREAMING 있는 비루프 클라이언트 버퍼의 경우 PlayOffset 및 WriteOffset 은 드라이버가 할당했거나 클라이언트가 할당한 하나의 물리적 버퍼로 오프셋되지 않습니다. 대신 이러한 오프셋은 스트림에 상대적이며 전체 스트림을 포함하고 처음부터 끝까지 연속되는 이상화된 버퍼에 대한 오프셋으로 간주될 수 있습니다. 데이터를 포함하는 실제 물리적 버퍼를 가리키는 내부 오프셋은 별도로 유지 관리해야 합니다.
재생 중에 PlayOffset 및 WriteOffset 값은 다음과 같이 해석됩니다.
- PlayOffset 은 재생된 버퍼에서 마지막 바이트의 오프셋입니다. PlayOffset + 1은 재생될 다음 바이트의 오프셋입니다.
- WriteOffset 은 재생 버퍼에서 마지막 바이트의 오프셋입니다.
기록하는 동안 PlayOffset 및 WriteOffset 값은 다음과 같이 해석됩니다.
- PlayOffset 은 캡처된 버퍼의 마지막 바이트 오프셋입니다. PlayOffset + 1은 캡처할 다음 바이트의 오프셋입니다.
- WriteOffset 은 캡처 버퍼에서 마지막 바이트의 오프셋입니다.
PlayOffset과 WriteOffset 사이의 공간은 이미 드라이버로 전송되었으며 드라이버에서 계속 사용 중일 수 있는 클라이언트 버퍼의 부분을 나타내기 때문에 클라이언트에 대한 오프 제한으로 간주됩니다.
자세한 내용은 오디오 위치 속성을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ksmedia.h(Ksmedia.h 포함) |
추가 정보
KSINTERFACE_STANDARD_LOOPED_STREAMING