[英]QAudioInput::notify() isn't executed while capturing sound from mic
[英]Sound from mic vs sound from speaker
我想分別從麥克風和揚聲器捕獲音頻。 如何區分它們? 我可以使用Wave API捕獲一個或另一個,例如WaveInOpen()。
當我使用waveInGetNumDevs()和waveInGetDevCaps()/ waveoutGetDevCaps()枚舉設備時,似乎沒有與特定端點設備(例如麥克風或揚聲器)有關的信息。 我只看到以下適配器設備:
高清讀取音頻輸入
高清讀取音頻輸出
攝像頭 ...
我實際上不了解Windows API,所以我的答案可能不是最好的,甚至還有更好的方法。
HRESULT hr = CoInitialize(NULL);
IMMDeviceEnumerator *pEnum = NULL;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pEnum);
if(SUCCEEDED(hr))
{
IMMDeviceCollection *pDevices;
// Enumerate the output devices.
hr = pEnum->EnumAudioEndpoints(eAll, DEVICE_STATE_ACTIVE, &pDevices);
// You can choose between eAll, eCapture or eRender
}
這樣,您就可以區分輸入(捕獲)和輸出(渲染)。 (這就是您想要的嗎?)
該代碼摘自本文 。 您可能會查看它以獲取正確的API調用和庫,甚至可能為您提供更多信息。
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.