Я хочу записать данные с микрофона, используя alsa.Эта команда:
int buf[4096];
memset(buf, 0, sizeof(buf));
snd_pcm_readi(capture_handle, buf, avail);
записывает данные микрофона в целочисленный буфер buf.(Я не уверен, что данные, которые записываются с помощью ..._ readi, являются даже целочисленными значениями, документация не сообщает.)
Но если я перебираю буфер, числа не имеют смысла.В качестве примера я получаю, что buf [60] == -2 600 000 000, поэтому оно меньше минимального целого числа, если целое число равно 32 бита.(как примечание, это не мой код, но я должен работать над этим).Я хочу получить двоичные значения всего этого буферного массива, разобраться в значениях и посмотреть, как они сохраняются в буфере, чтобы я мог воссоздать звуковую волну с этими данными.