2011-11-01 64 views
2

我試圖通過帶負載的ID在soundpool中打開一個mp3,也試圖通過文件描述符來做到這一點。爲什麼我的mp3會被壓縮?

我總是得到相同的異常:

This file can not be opened as a file descriptor; it is probably compressed 

爲什麼我的MP3被壓縮?

這裏是的Soundpool代碼:

mySoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 
try { mySoundPool.load(this, R.raw.drum, 1); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.e(TAG, "", e); 
    } 

回答

1

MP3是一種壓縮文件格式,讓您的MP3文件已經壓縮。作爲wikipedia說:

MP3,是使用有損 數據壓縮的形式

This Stackoverflow question建議你應該使用在Android WAV或OGG的支持專利的數字音頻編碼格式,並提供了一種替代播放MP3的方式。

SoundPool API docs確實意味着支持MP3,所以我不確定這裏出了什麼問題。我建議您嘗試使用其他一些MP3文件進行測試,並測試將現有的MP3轉換爲WAV/OGG格式以進行測試。

您需要將其重命名爲Android資源不包含文件擴展名。請確保您檢查res \ raw中的另一個文件是否具有相同的名稱,但具有不同的文件擴展名,因爲這可能會導致問題。

+0

那麼爲什麼它不與soundpool玩?我認爲soundpool除了mp3嗎? – panthro

+0

發佈您的代碼。 –

+0

已發佈代碼 – panthro

相關問題