aiff: программное воспроизведение?

Я пытаюсь программно воспроизвести некоторые файлы Apple Loop, которые у меня есть. Так как мне нравится clojure, я сначала попытался сделать это с помощью JVM. Java Sound Demo воспроизводит файл.aif, который поставляется вместе с пакетом, но когда я пытаюсь воспроизвести один из моих файлов циклов, я получаю:

java.lang.IllegalArgumentException: No line matching interface Clip supporting
format PCM_SIGNED 48000.0 Hz, 24 bit, stereo, 6 bytes/frame, big-endian, 
and buffers of 671064 to 671064 bytes is supported. 

Я предполагаю, что это означает, что Java звуковой API не будет поддерживать мой тип файла. Я не зависим от языка, но мне любопытно, какой язык лучше всего использовать для воспроизведения этого?

Я также заглянул в pygame, но это кажется кошмаром для установки, поэтому хотел посмотреть, какие у меня есть варианты.

1 ответ

Решение

Проблема в том, что звук Java, который является древним и отчаянно нуждается в любви, не поддерживает 24-битные файлы. (Я уверен, что он поддерживает 48 кГц и поддерживает AIFF без сжатия стерео)

Есть несколько вариантов расширения javasound с помощью других библиотек, хотя я не очень разбираюсь в них. Вы можете попробовать http://www.tritonus.org/

Для других языков одним из первых мест является http://www.mega-nerd.com/libsndfile/ который очень популярен, и я думаю, что могут быть обертки для языков, которые могут вам понравиться, помимо C.

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