我正在使用DirectSoundFullDuplexCreate8進行錄製,並且在某些情況下在Win 7下播放。我有幾個問題。有關DirectSoundFullDuplexCreate8的兩個問題
一個非常簡單 - 將FullDuplex與所有音頻硬件一起工作嗎?在某些情況下,我們將使用不同的設備進行錄製和播放。到目前爲止,這似乎工作,但如果有機器不支持全雙工Win版本,我們可以推出自己的。
另一個可能是一個愚蠢的問題,但我不知道如何設置事件通知錄製。下面是到目前爲止,我已經得到了代碼,但我不明白如何開始記錄或如何設置的東西,這樣我就可以複製的數據記錄到其它緩衝劑,包括播放緩衝:
hr = DirectSoundFullDuplexCreate8((LPCGUID)recordDeviceDS, (LPCGUID)playbackDeviceDS&capBufferDescription, &playBufferDescription, hWnd, DSSCL_PRIORITY, &pDSFullDuplex, &pDSCaptureBuffer8, &pDSPlayBuffer8, NULL);
if (hr != DS_OK)
return false;
// Set up the notify events
hr = pDSCaptureBuffer8->QueryInterface(IID_IDirectSoundNotify, (LPVOID*)&pDSNotify);
if (hr != DS_OK)
return false;
for (int i = 0; i < 3; ++i)
{
eventHandles[i] = CreateEvent(NULL, TRUE, FALSE, NULL);
if (eventHandles[i] == NULL)
return false;
}
notifyEvents[0].dwOffset = 500;
notifyEvents[0].hEventNotify = eventHandles[0];
notifyEvents[1].dwOffset = 1000;
notifyEvents[1].hEventNotify = eventHandles[1];
notifyEvents[2].dwOffset = DSBPN_OFFSETSTOP;
notifyEvents[2].hEventNotify = eventHandles[2];
hr = pDSNotify->SetNotificationPositions(NUM_CAP_EVENTS, notifyEvents);
if (hr != DS_OK)
return false;
pDSNotify->Release();
接下來是什麼?我認爲我使用:
pDSCaptureBuffer8->Start(true);
開始拍攝,但我沒有看到如何設置,當數據適量已累計被激活的DS事件處理函數的任何引用。
謝謝,這回答我的問題。我沒有看到引用AEC被禁用。 – TomJeffries