Java AudioSystem: чтение 32-битных файлов WAVJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java AudioSystem: чтение 32-битных файлов WAV

Сообщение Anonymous »

Я читаю аудиофайлы с битовой глубиной выборки 16 и 24 бита и анализирую их, чтобы без труда определить их длину. Однако при чтении 32-битного файла я получаю

Код: Выделить всё

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1170)
...
32-битный тестовый файл кодируется вручную так же, как и остальные (линейный PCM). Мне интересно, не поддерживает ли AudioSystem 32-битные файлы Wav или есть ли обходной путь. Для справки, вот мой класс:

Код: Выделить всё

import java.io.*;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;

public class soundUtility {
public static double getWavDuration(File filename)
{
AudioInputStream stream = null;
try
{
stream = AudioSystem.getAudioInputStream(filename);
AudioFormat format = stream.getFormat();
return filename.length() / format.getSampleRate() / (format.getSampleSizeInBits() / 8.0) / format.getChannels();
}
catch (Exception e)
{
e.printStackTrace();
return -1;
}
finally
{
try { stream.close(); } catch (Exception ex) { }
}
}

public static void main(String[] args) {

try {
// ===== TESTS: toggle these calls to test the included files =====
// File soundFile = new File("16bit.mono.441k.30secs.wav");
// File soundFile = new File("24bit.48k.11secs.stereo.wav");
File soundFile = new File("32bit.Floating.Stereo.48k.wav");
// ===========

System.out.println(getWavDuration(soundFile));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Спасибо за информацию.

Подробнее здесь: https://stackoverflow.com/questions/152 ... -wav-files
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»