У меня есть образцы PCM в коротком массиве. Каков наилучший способ воспроизвести это? Формат 8000Hz, Mono, 16 бит, большой endian. (Образцы PCM генерируются в коде и не прочитать какой-то файл)как играть pcm необработанные данные в java
Благодаря
У меня есть образцы PCM в коротком массиве. Каков наилучший способ воспроизвести это? Формат 8000Hz, Mono, 16 бит, большой endian. (Образцы PCM генерируются в коде и не прочитать какой-то файл)как играть pcm необработанные данные в java
Благодаря
javax.sound.sampled С пакетом это в значительной степени просто, но вы должны использовать некоторые шаблонный.
Вот хороший учебник по этому: www.wikijava.org/wiki/Play_a_wave_sound_in_Java
В основном вы должны создать InputStream
из вашего массива и использовать его для создания AudioInputStream
. Там вы должны указать формат ваших аудиоданных.
Затем вы открываете выходной поток (SourceDataLine
) и копируете байты из аудиопотока в этот поток.
Отметьте эту статью - http://download.oracle.com/javase/tutorial/sound/playing.html.
В частности, прочтите SourceDataLine и как настроить AudioFormat.
Спасибо за подсказку. Я пробовал этот метод, но не мог правильно воспроизвести данные pcm, я мог только получить шум. Возможно, проблема с конфигурацией AudioFormat. Но я нашел работу: я сбросил данные pcm в команду FileOutputStream (/tmp/x.wav)and exec'd aplay (утилита alsa в linux) для воспроизведения /tmp/x.wav. – Geos