2011-10-05 1 views
2

특정 오디오 장치가 독점 모드에서 지원하는 출력 형식을 찾으려고합니다. 이렇게하려면 IAudioClient-> IsFormatSupported()를 사용하고 있는데, 문서에 따르면이 항목을 사용할 수 있어야합니다. 불행히도, 디폴트 2 채널, 44.1khz 오디오를 제외하고, 거의 모든 포맷에 대해 AUDCLNT_E_UNSUPPORTED_FORMAT을 반환합니다.WASAPI : IAudioClient-> IAudioClient-> IsFormatSupported가 같은 형식으로 실패해도 초기화 성공

실제로 audioclient를 초기화하려고하면 성공하지만 IsFormatSupported()에서는 실패한 형식이 있습니다.

모든 형식을 초기화하려고하면 다른 응용 프로그램의 오디오가 중단 될 수 있으므로 옵션을 사용할 수 없습니다.

다른 사람이이 동작을 보았거나 특정 오디오 장치에서 지원되는 형식을 찾는 다른 방법이 있는지 알고 있습니까?

답변

1

이 동작을 보았습니다. IsFormatSupported는 Windows의 재생 장치 설정에서 '지원됨'으로 표시된 항목 만 수락하는 것처럼 보이지만 Initialize는 실제로 가능한 경우 드라이버를 묻는 것으로 끝납니다.

내 특정 상황에서 HDMI를 출력으로 사용하는 Xoxar HDAV1.3 설정이 있습니다. 스피커와 S/PDIF 통과 장치라는 두 가지 재생 장치를 항상 사용할 수 있습니다. 예를 들어, S/PDIF 재생 장치의 6 개 채널을 요청하려고하면 IsFormatSupported가이를 거부합니다 (이론적으로 S/PDIF는 2 만 지원하며 설정에서 볼 수 있습니다). 그러나 Initialize를 호출하면 성공합니다 결국 6 채널이 지원되는 HDMI를 사용한다. 오도 ​​된 장치 이름에 대해 이야기하십시오!

이 문제를 해결하기위한 실질적인 방법은 없습니다.