2011-06-01 24 views
4

大約一年前,我開始爲android構建一個應用程序。 現在,當我嘗試運行它時,我得到了一個有關AudioInputStream類的異常,經過我使用GOOGLE的一個簡短研究後,我發現Android不再支持這個類... 是他們的任何替代方案嗎?java(Android)中AudioInputStream的替代類是什麼?

這是我寫的代碼:

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上設定的頻率生成方法,所以我在android系統的引用和Java SE的API的挖無處不在很多1.7文檔。但是不存在類AudioInputStream的易交換替代品,甚至在您的代碼中找到類AudioSystem。 如果你想使用你的遺產,你可能需要修改和重構幾個項目。在我的例子中,我使用了InputStream和ByteArrayInputStream(java.io),並且記錄和系統化的一些動作將由AudioRecord和AudioManager(android.media)來管理。請注意,Android和java7中的AudioFormat與其內部特徵不同。如果我在處理音頻時清除了我的問題,我會爲您附上一段示例代碼。

+0

如果你有一個樣本,那麼請粘貼在這裏... thnx – Pradeep 2014-04-03 15:59:38

+0

示例代碼發生了什麼? – 2015-08-31 23:13:22

相關問題