Java(Android)中AudioInputStream的替代类是什么?

4

大约一年前,我开始开发一个Android应用程序。现在当我尝试运行它时,出现了有关AudioInputStream类的异常。通过使用谷歌进行短暂的研究后,我发现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个回答

1

我在开发一个在安卓上生成频率的方法集时,也遇到了类似的问题,所以我在安卓API和Java SE 1.7文档中进行了大量的搜索。但是在你的代码中找不到可替换的AudioInputStream类和AudioSystem类。

如果你想使用旧代码,可能需要修改和重构一些项目。在我的情况下,我使用了java.io中的InputStream和ByteArrayInputStream,并且录制和系统化一些操作将由android.media中的AudioRecord和AudioManager来管理。请注意,安卓和Java7中的AudioFormat具有不同的内部特性。如果我解决了音频处理方面的问题,我会为你附上一段示例代码。


如果您有一个示例,请将其粘贴在这里...谢谢 - Pradeep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接