каков альтернативный класс для AudioInputStream в Java (Android)?

#java #android

#java #Android

Вопрос:

Около года назад я начал создавать приложение для Android. Теперь, когда я пытаюсь запустить его, я получаю исключение о классе AudioInputStream, После короткого исследования, которое я провел с помощью GOOGLE, я узнал, что Android больше не поддерживает этот класс… Есть ли у них какая-либо альтернатива для этого?

Это код, который я написал:

     private void merge2WavFiles(String wavFile1, String wavFile2, String newWavFilePath) {

    try {
        File wave1 = new File(wavFile1);
        if(!wave1.exists())
            throw new Exception(wave1.getPath()   " - File Not Found");
        AudioInputStream clip1 = AudioSystem.getAudioInputStream(wave1);
        AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2));

        AudioInputStream emptyClip = 
            AudioSystem.getAudioInputStream(new File(emptyWavPath));            

        AudioInputStream appendedFiles = 
            new AudioInputStream(
                    new SequenceInputStream(clip1, emptyClip),
                    clip1.getFormat(),
                    clip1.getFrameLength()   100
                    );

        clip1 = appendedFiles;

        appendedFiles = 
            new AudioInputStream(
                    new SequenceInputStream(clip1, clip2),
                    clip1.getFormat(),
                    clip1.getFrameLength()   clip2.getFrameLength()
                    );

        AudioSystem.write(appendedFiles, AudioFileFormat.Type.WAVE, new File(newWavFilePath));
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  

Ответ №1:

У меня также возникли похожие на ваши проблемы при разработке набора методов генерации частоты на Android, поэтому я повсюду копался в API-интерфейсах Android references и java se 1.7 docs. Но в вашем коде не существует легко заменяемых альтернатив класса AudioInputStream и даже класса AudioSystem, найденных в вашем коде. Если вы хотите использовать свое наследие, вам, возможно, придется пересмотреть и реорганизовать несколько элементов. В моих случаях я использовал InputStream и ByteArrayInputStream (java.io ) для этого, а также для записи и систематизации некоторых действий будут управляться AudioRecord и AudioManager (android.media). Обратите внимание, что AudioFormat в Android и java7 отличаются своими внутренними характеристиками. Если я устраню свои проблемы при обработке звука, я приложу фрагмент примера кода для вас.

Комментарии:

1. если у вас есть образец, пожалуйста, вставьте сюда … спасибо