Skleciłem oto coś takigo:
WAVEFORMATEX WaveFormat; // (1
HWAVEIN WaveHandle; // (2
WAVEHDR WaveHeader; // (3
char* Buffer = NULL; // (4
unsigned int BufferSize = 0; // (5
unsigned short Channels = 2; //kanałów: 1-mono, 2-stereo
unsigned long SamplesPerSecond = 22050; //iloc probek na sekunde
unsigned short BitsPerSample = 8; //rozmar probki
unsigned long RecordSeconds = 10; //dlugosc nagrania
WaveFormat.wFormatTag = WAVE_FORMAT_PCM;
WaveFormat.nChannels = Channels;
WaveFormat.nSamplesPerSec = SamplesPerSecond;
WaveFormat.wBitsPerSample = BitsPerSample;
WaveFormat.nAvgBytesPerSec = SamplesPerSecond * Channels;
WaveFormat.nBlockAlign = (Channels*BitsPerSample)/8;
WaveFormat.cbSize = 0;
int Res = waveInOpen(&WaveHandle, WAVE_MAPPER, &WaveFormat, 0, 0, WAVE_FORMAT_QUERY);
BufferSize = RecordSeconds * (BitsPerSample / 8) * SamplesPerSecond * Channels;
Buffer = new char [BufferSize];
WaveHeader.dwBufferLength = BufferSize;
WaveHeader.dwFlags = 0;
WaveHeader.lpData = Buffer;
Res = waveInPrepareHeader(WaveHandle, &WaveHeader, sizeof(WAVEHDR));
if(Res){/*komunikat o błędzie*/; if(Buffer) delete Buffer;}
Res = waveInAddBuffer(WaveHandle, &WaveHeader, sizeof(WAVEHDR));
waveInClose(WaveHandle);
OK, i teraz chce z tego wyciągnąć VU meter. Dokładniej mówiąc skleiłem ten kod na podstaie tego artu:
http://4programmers.net/article.php/id=577
<ort>Pominołem </ort>oczywiście funkcje nagrywania do pliku jak tam dokładniej jest opisane, bo mi chodzi przcież o wyciągnięcie dźwięku z kanału, jak np. odpale winampa....więc po prostu nie wiem jak meter <ort>z tąd</ort> wyciągnąć....
Prosze ;( , czy ktoś mi może pomóc jej bo ja się męcze i męcze, chyba jestem za mało inteligentny na programowanie... ;(