2010-07-23 46 views
2

我想在Android中播放波形文件(VoiceMail)。該文件從遠程服務器下載並寫入SD卡。在Android中播放波形文件

我用下面的代碼來播放波形文件usign與SDK捆綁MediaPlayer的類:

FileDescriptor fd = new FileInputStream(songFile).getFD();    

       MediaPlayer mMediaPlayer = new MediaPlayer(); 

       mMediaPlayer.reset(); 
       try{ 
        mMediaPlayer.setDataSource(fd); 
       } 
       catch(IllegalStateException e){ 
        mMediaPlayer.reset(); 
        mMediaPlayer.setDataSource(fd); 
       } 
       mMediaPlayer.prepare();      
       mMediaPlayer.start(); 

然而,當我跑我的代碼,我得到以下錯誤: 命令PLAYER_SET_DATA_SOURCE完成但有錯誤或info PVMFErrNotSupported 錯誤(1,-4)。

請注意,當我在桌面計算機上拖動此文件並將其複製到我的HTC英雄設備的音樂文件夾時,設備的音樂播放器可以播放此文件,因此我猜測該文件格式與Android兼容。

不確定是什麼問題;請幫忙。

謝謝。

+0

您是否在名稱songFile中有.wav? – Sephy 2010-07-23 16:16:47

回答

0

另一個問題可能是該文件在下載過程中被損壞......我最近有一個與我從谷歌圖片搜索下載的圖像完全相同的問題...由於某些原因文件不斷被損壞..我仍然沒有找到解決辦法。我認爲HTTP客戶端正在丟失數據包。

+0

不,文件沒有損壞,我通過將文件複製到音樂文件夾來播放文件。所以我認爲,這與通過代碼使用MediaPlayer進行關聯有關。 任何幫助? – Raj 2010-07-26 07:04:09

+0

也許看看http://code.google.com/p/ringdroid/ – androidworkz 2010-07-26 11:49:10

0

可能不支持音頻編解碼器。 嘗試使用的ffmpeg確定編解碼器

ffmpeg -i audio.wav 

而與此頁http://developer.android.com/guide/appendix/media-formats.html

你會看到,並不是每一個可能的WAV類型將在Android上工作比較。我之前遇到過有這個問題的網絡攝像頭有音頻。我不得不從IMA-ADPCM wav文件轉換爲PCM波形文件。