У меня возникли проблемы с воспроизведением аудиоданных после того, как они были обработаны. Единственный API, который я использую, это alsa lib API в Linux (Ubuntu) в C. Я получаю данные из 16-битного целочисленного волнового файла в массиве unsigned char (называемом buffer1), используя read(), и buffer1 можно воспроизводить правильно , Я хочу, чтобы данные передавались в другой массив без знака (так называемый buffer2) того же размера. Если я просто создаю цикл с buffer2 [i] = buffer1 [i], он работает: buffer2 можно воспроизводить правильно. Но для того, чтобы манипулировать данными, я конвертирую его в массив float, а затем обратно в unsigned char (до сих пор я не манипулирую аудиоданные, я просто конвертирую их в float, а затем обратно в unsigned char, чтобы проверить, как это работает). Но теперь buffer2 не создает звук, хотя все его значения строго идентичны значениям buffer1 (я сделал printf из многих значений buffer1 и buffer2, они все одинаковы) ... Все, что я сделал, это кастинг от unsigned to float и наоборот ...Звуковые данные (без знака), которые были обработаны, не могут быть воспроизведены
Подумайте, что случилось?
Виктор
Здравствуйте, спасибо вам за ответ. Я считаю, что в классическом я считаю: for (i = 0; i
victor
Когда я сравниваю значения buffer1 [i] и buffer [2], они не равны (buffer2 [i] больше, чем buffer2 [i]) – victor