이 쿼리는 Portaudio 프레임 워크와 관련이 있습니다. 내가 질문을하기 전에 약간의 배경 : PortAudio의 응용 프로그램에서 멀티 채널 (= 8) 장치를 통해 오디오를 출력하려고합니다. 그러나, 내가 사용하고있는 장치는 단일 8 채널 장치로 자체 노출되지 않고 내 장치 목록에 4 개의 스테레오 장치로 표시됩니다. 이 문제를 해결하기위한 접근 방법을 찾고, PortAudio의 WinMME가 여러 장치를 지원한다는 것을 알아야합니다.PortAudio에서 여러 장치 구성 : 잘못된 장치 오류
이제 적절한 헤더 파일 ("pa_win_wmme.h")을 살펴보고 제시된 제안을 따랐습니다. 하지만 PA_OpenStream()을 호출 한 후 '잘못된 장치'오류 (오류 번호 -9996)가 발생합니다. 위에서 언급 한 헤더 파일에서 그들은 실제로이 오류를 피하기 위해 여러 장치를 구성 할 때 사용할 올바른 매개 변수를 지정했으나이를 따르더라도 여전히 오류가 발생합니다. 그래서 누군가가 비슷한 문제에 직면했는지 그리고 내가 놓친 것이 든 잘못 구성했는지 알고 싶었습니다.
내가 참조를 위해 아래 코드의 필요한 조각을 붙여 오전 :
PaStreamParameters outputParameters;
PaWinMmeStreamInfo wmmeStreamInfo;
PaWinMmeDeviceAndChannelCount wmmeDeviceAndNumChannels;**
...
...
outputParameters.device = paUseHostApiSpecificDeviceSpecification;
outputParameters.channelCount = 8;
outputParameters.sampleFormat = paFloat32; /* 32 bit floating point processing */
outputParameters.hostApiSpecificStreamInfo = NULL;
wmmeStreamInfo.size = sizeof(PaWinMmeStreamInfo);
wmmeStreamInfo.hostApiType = paMME;
wmmeStreamInfo.version = 1;
wmmeStreamInfo.flags = paWinMmeUseMultipleDevices;
wmmeDeviceAndNumChannels.channelCount = 2;
wmmeDeviceAndNumChannels.device = 3;
wmmeStreamInfo.devices = &wmmeDeviceAndNumChannels;
wmmeStreamInfo.deviceCount = 4;
outputParameters.hostApiSpecificStreamInfo = &wmmeStreamInfo;
장치 ID가 = 3이 얻어졌다
Pa_GetHostApiInfo(Pa_HostApiTypeIdToHostApiIndex(paMME))->defaultOutputDevice
을 통해 내가 충분히 쿼리가 분명히있다 바랍니다. 필요한 경우 세부 정보를 제공해 드리겠습니다.
감사합니다.
@trukvl .. 답장을 보내 주셔서 감사합니다. 단일 장치를 사용하면 시스템이 작동합니다 (예 : 언급 한대로) outputParameters.channelCount를 2로 설정하고 deviceCount를 1로 설정하면 스테레오 출력이됩니다. 물론 예상대로입니다. 이제 8 채널 (스테레오 구성을 수정하여 질문에서와 같이)을 확장하면 문제가 발생하는 것 같습니다. 4 스트림을 열고 다시 돌아가는 것에 대한 제안을 시도합니다. – user2870035