用waveInOpen采集到的mic音频流,不保存到文件,可以直接播放吗 - C++ Builder / Windows SDK/API
我是把采集到的数据保存到TMemorystream里面的,可不可以直接回放采集到的音频流呢?如果可以,怎么回放?
[解决办法]
花了点时间给你抄了段代码,直接放到你上次贴子那段里面就能测试了。
//------------------------------#define BLOCK_SIZE 8192#define BLOCK_COUNT 20/* * function prototypes */ static void CALLBACK waveOutProc(HWAVEOUT, UINT, DWORD, DWORD, DWORD);static WAVEHDR* allocateBlocks(int size, int count);static void freeBlocks(WAVEHDR* blockArray);static void writeAudio(HWAVEOUT hWaveOut, LPSTR data, int size);/* * module level variables */static CRITICAL_SECTION waveCriticalSection;static WAVEHDR* waveBlocks;static volatile int waveFreeBlockCount;static int waveCurrentBlock;//----------------------void __fastcall TForm1::PlaySoundFormStream( TMemoryStream *pmem){ HWAVEOUT hWaveOut; /* device handle */ WAVEFORMATEX wfx; /* look this up in your documentation */ int i; waveBlocks = allocateBlocks(BLOCK_SIZE, BLOCK_COUNT); waveFreeBlockCount = BLOCK_COUNT; waveCurrentBlock = 0; InitializeCriticalSection(&waveCriticalSection); /* * set up the WAVEFORMATEX structure. */ wfx.nSamplesPerSec = 44100; /* sample--------