Программа, возвращающая «не удалось получить поток аудиовхода из входного файла» для определенного файла .WAV - PullRequest
1 голос
/ 23 апреля 2011

У меня есть программа, которая включает анализ и вывод .wav файлов.Он отлично работает с треками с компакт-дисков или из Интернета, но я сгенерировал последовательность чистых синусоидальных тонов, используя для анализа matlab, и это дает мне ошибку, показанную в названии.Файлы matlab отлично работают в iTunes, поэтому я не уверен, почему с моей программой возникают проблемы с этим.

public static void signalToFile(File f) throws IOException, UnsupportedAudioFileException
{
    AudioInputStream inputStream = AudioSystem.getAudioInputStream(f);
    int numBytes = inputStream.available();
    byte[] buffer = new byte[numBytes];
    inputStream.read(buffer, 0, numBytes);

    String newFile = f.getName().replace(".wav", ".txt");
    System.out.println("Beginning file write: " + newFile + " (soundUtilities)");
    BufferedWriter fileOut = new BufferedWriter(new FileWriter(new File("src/examples/Media/" + newFile)));
    System.out.println("Ending file write: " + newFile + " (soundUtilities)");
    System.out.println(buffer.length);
    ByteBuffer myBB = ByteBuffer.wrap(buffer);
    myBB.order(ByteOrder.LITTLE_ENDIAN);
    while(myBB.remaining() > 1)
    {
        short current = myBB.getShort();
        fileOut.write(String.valueOf(current));
        fileOut.newLine();
    }

    fileOut.flush();
    fileOut.close();
    inputStream.close();
}

Первая строка этого метода - причина ошибки.Этот метод включает информацию о сигнале для файла в текстовый файл.Любая помощь будет принята с благодарностью.

Ниже приведен небольшой фрагмент кода Matlab, который я использовал для создания файла wav:

x13 = sin(2*pi*220*t1); % A3 long sample
x13envelope = [1:-1/length(x13):1/length(x13)];
x13full = x13.*x13envelope;

totalSound = [x1full x2full x3full x4full x5full x6full x7full x8full x9full x10full x11full x12full x13full]; % combines the notes

 wavwrite(totalSound, fs, 32, 'TestTune');

Каждая из записей в массиве "totalSound" представляет собойпримечание

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

WAV-файлы имеют заголовок. Вы, кажется, не создаете этот заголовок. То, что вы, кажется, создаете, является необработанным файлом PCM.

0 голосов
/ 17 мая 2013

Я искажаю эту проблему "Вывод отличается в JBoss 4.2 и JBoss 7 JBoss 4.2: поддержка WAVE = true

JBoss 7: поддержка WAVE = false" проверьте также это https://community.jboss.org/message/729654

...