IAudioClock2::GetDevicePosition 메서드(audioclient.h)
GetDevicePosition 메서드는 하드웨어에서 직접 프레임의 현재 디바이스 위치를 가져옵니다.
구문
HRESULT GetDevicePosition(
[out] UINT64 *DevicePosition,
[out] UINT64 *QPCPosition
);
매개 변수
[out] DevicePosition
프레임에서 디바이스 위치를 받습니다. 수신된 위치는 메서드가 하드웨어에서 직접 가져오는 처리되지 않은 값입니다. 자세한 내용은 설명 부분을 참조하세요.
[out] QPCPosition
오디오 엔드포인트 디바이스가 GetDevicePosition 호출에 대한 응답으로 DevicePosition 매개 변수에서 검색된 디바이스 위치를 읽을 때 성능 카운터의 값을 받습니다.
GetDevicePosition 은 카운터 값을 QPCPosition에 쓰기 전에 100나노초 시간 단위로 변환합니다.
클라이언트에 성능 카운터 값이 필요하지 않은 경우 QPCPosition은 NULL일 수 있습니다.
자세한 내용은 설명 부분을 참조하세요.
반환 값
메서드가 성공하면 S_OK가 반환되고,
반환 코드 | 설명 |
---|---|
|
DevicePosition 매개 변수는 NULL입니다. |
|
오디오 엔드포인트의 연결이 끊어졌습니다. |
|
이 스트림에 대해 IAudioClient::Start 메서드가 호출되지 않았습니다. |
설명
이 메서드는 공유 모드 스트림에만 적용됩니다.
이 메서드는 상관 관계가 있는 두 개의 스트림 위치 값을 검색합니다.
- 디바이스 위치입니다. 클라이언트는 DevicePosition에서 처리되지 않은 디바이스 위치를 검색합니다. 현재 스피커를 통해 재생 중이거나(렌더링 스트림의 경우) 마이크를 통해 기록되는 샘플의 스트림 위치입니다(캡처 스트림용). 디바이스 엔드포인트의 샘플링 속도는 클라이언트에서 사용하는 혼합 형식의 샘플링 속도와 다를 수 있습니다. 클라이언트에서 디바이스 위치를 검색하려면 IAudioClock::GetPosition을 호출합니다.
- 성능 카운터. 클라이언트는 QPCPosition에서 성능 카운터를 검색합니다. GetDevicePosition은 오디오 엔드포인트 디바이스가 GetDevicePosition 메서드의 DevicePosition 매개 변수에 스트림 위치를 저장하는 시점에 QueryPerformanceCounter 함수를 호출하여 카운터 값을 가져옵니다. GetDevicePosition 은 카운터 값을 100나노초 시간 단위로 변환합니다. QueryPerformanceCounter 및 QueryPerformanceFrequency에 대한 자세한 내용은 Windows SDK 설명서를 참조하세요.
- 원시 카운터 값을 10,000,000으로 곱합니다.
- 결과를 QueryPerformanceFrequency에서 얻은 카운터 빈도로 나눕니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | audioclient.h |