Как воспроизвести сжатые файлы GSM 6.10 на Java

Подскажите, пожалуйста, как можно изменить эти строки кода, чтобы можно было воспроизводить некоторые файлы GSM.

File audioFile = new File(audioFilePath);
AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile);
AudioFormat format = audioStream.getFormat();
AudioFormat format = audioStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
Clip audioClip = (Clip) AudioSystem.getLine(info);
audioClip.open(audioStream);
audioClip.start();
audioClip.close();
audioStream.close();

Спасибо

1 ответ

Решение

Вам нужно установить поставщика услуг звука Java для GSM. FFSampledSP будет работать (через FFmpeg).

Установите его, а затем, чтобы попасть в поток PCM, вам может потребоваться преобразовать поток GSM следующим образом:

    AudioInputStream gsmStream = AudioSystem.getAudioInputStream(new File("audio.gsm"));
    AudioInputStream pcmStream = AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, gsmStream);

Ограничение: FFSampledSP использует нативные библиотеки и доступен только для Windows и OS X. Любая другая платформа, вероятно, требует немало работы.

Кроме того, вы можете попробовать плагин тритонов GSM 6.10.

Другие вопросы по тегам