Recording test, we prepared.
Their sample always helps us.
Thenk you very much.
HRESULT sounds_recording_start(); HRESULT sounds_recording_start() { HRESULT hr; BOOL bDone = FALSE; UINT32 packetLength = 0; BYTE* pData; UINT32 numFramesAvailable; DWORD flags; hr = pAudioClient->Start(); // Start recording. EXIT_ON_ERROR(hr) // Each loop fills about half of the shared buffer. while (bDone == FALSE) { // Sleep for half the buffer duration. Sleep(hnsActualDuration / REFTIMES_PER_MILLISEC / 2); hr = pCaptureClient->GetNextPacketSize(&packetLength); EXIT_ON_ERROR(hr) while (packetLength != 0) { // Get the available data in the shared buffer. hr = pCaptureClient->GetBuffer( &pData, &numFramesAvailable, &flags, NULL, NULL); EXIT_ON_ERROR(hr) if (flags & AUDCLNT_BUFFERFLAGS_SILENT) { pData = NULL; // Tell CopyData to write silence. } // Copy the available capture data to the audio sink. //x hr = pMySink->CopyData( //x pData, numFramesAvailable, &bDone); EXIT_ON_ERROR(hr) hr = pCaptureClient->ReleaseBuffer(numFramesAvailable); EXIT_ON_ERROR(hr) hr = pCaptureClient->GetNextPacketSize(&packetLength); EXIT_ON_ERROR(hr) } } hr = pAudioClient->Stop(); // Stop recording. EXIT_ON_ERROR(hr) Exit: CoTaskMemFree(pwfx); SAFE_RELEASE(pEnumerator) SAFE_RELEASE(pDevice) SAFE_RELEASE(pAudioClient) SAFE_RELEASE(pCaptureClient) return hr; }