此查詢涉及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