У меня есть следующий фрагмент кода:Java OGG конверсии WAV
File file = new File(sourceFile);
AudioInputStream in = AudioSystem.getAudioInputStream(file);
AudioInputStream din = null;
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(),
16, baseFormat.getChannels(), baseFormat.getChannels() * 2,
baseFormat.getSampleRate(), false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);
AudioSystem.write(din, AudioFileFormat.Type.WAVE, new File(targetFile));
Я написал этот код transfrom MP3 и OGG файлы в WAV файлы. Эти форматы не поддерживается Java по умолчанию, как я понимаю, так что мне пришлось добавить различные банки к моим классам, как описано здесь:
http://www.javazoom.net/mp3spi/documents.html
http://www.javazoom.net/vorbisspi/documents.html
код работает нормально, когда я преобразование MP3-файлы. Но когда я пытаюсь преобразовать OGG файлы, которые я получаю следующее сообщение об ошибке:
java.lang.IllegalArgumentException: Unsupported conversion: PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian from VORBISENC 44100.0 Hz, unknown bits per sample, stereo, 1 bytes/frame, 16000.0 frames/second
Теперь это брошено только при получении декодированного InputStream себя, что означает, что файл был разобран OGG успешно.
AudioSystem.getTargetEncodings(sourceFormat)
Приведенный выше код не возвращает никаких значений при обработке файлов MP3 или OGG. Единственное различие заключается в том, что MP3 работает отлично.
Я добавил все банки, на которые ссылается предыдущая ссылка, необходимая для преобразования ogg, за исключением последней версии jogg-0.0.7.jar, потому что я не смог ее найти.
Я пробовал разные решения, такие как JAVE, но мне нужно, чтобы он работал и на MAC, а JAVE не будет работать на MAC без какой-либо специальной реализации.
Есть ли у кого-нибудь предложения, что может вызвать проблему? Может ли быть какое-либо обходное решение для преобразования OGG-файла в WAV?
EDIT:
Оу вау я понял, что проблема ... После прочтения Everthing на руководстве, я узнал, что, используя два различных вида Спиша (как в этом случае MP3 и OGG), может привести к проблемы. Я удалил зависимость spi maven MP3, и ошибка исчезла. Думал, что результат wav в основном пуст. Любые предложения по этому поводу? Я буду рад, если смогу преобразовать OGG в WAV для работы, я могу преобразовать MP3 по-другому.
Моя ПОМ зависимость выглядит следующим образом:
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>vorbisspi</artifactId>
<version>1.0.3-1</version>
</dependency>
Эта загрузка Я думаю все банки мне нужно сделать OGG преобразования работы. (Смотрится не.)
Это то, что вы хотите? https://poi1.googlecode.com/files/jogg-0.0.7.jar – longhua
Я обнаружил, что jar я просто не мог найти зависимость от maven, поэтому я не хотел его использовать. Я попытался загрузить его в classpath из папки lib, но без bueno. Sry Я много тратил впустую с этим вопросом, я забыл упомянуть об этом. –
Добавить tritonus_jorbis-0.3.6.jar (http://tritonus.org/tritonus_share-0.3.6.jar) может правильно преобразовать OGG в WAV. Не знаю, почему. – longhua