JAVA - Как воспроизводить аудио звук, представленный как float [] или double [] - PullRequest
0 голосов
/ 03 сентября 2011

Я читаю аудиофайл в байтах, затем выполняю БПФ (в качестве фильтра нижних частот) для байта аудио [], поэтому выходной сигнал БПФ равен двойному [] (Действительного и Мнимого). Теперь я хочу воспроизвести результат, чтобы услышать звук. Я использую SourceDataLine, если я буду играть байт [].

Итак, проблема в том, как я могу сыграть в дабл [] ??

Спасибо,

Самер Сами

Ответы [ 2 ]

4 голосов
/ 03 сентября 2011

Я думаю, что лучшим подходом было бы преобразовать его обратно в байт [].

Вы можете сделать это, используя ByteArrayOutputStream и DataOutputStream.

ByteArrayOutputStream позволяет получать содержимое потока в виде байтового массива, а DataOutputStream позволяет записывать двойной поток в поток.

3 голосов
/ 03 сентября 2011

Чтобы расширить ответ @ Линча, который, по-видимому, был недостаточно ясен для ОП:

byteStream = new ByteArrayOutputStream();
dataStream = new DataOutputStream( byteStream );

// write each element of your double[] to dataStream

dataStream.close();
byteStream.close();

byte[] audioBytes = byteStream.toByteArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...