为什么我的mp3会被压缩?

时间:2011-11-01 18:20:32

标签: android

我试图通过带有加载的id在soundpool中打开一个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 个答案:

答案 0 :(得分:1)

MP3是一种压缩文件格式,因此您的MP3文件已经过压缩。正如wikipedia所说:

  

MP3,是一种使用有损形式的专利数字音频编码格式   数据压缩

This Stackoverflow question表示您应该在Android上使用WAV或OGG支持,并提供另一种播放MP3的方式。

SoundPool API docs确实意味着支持MP3,所以我不确定这里出了什么问题。我建议您尝试使用其他一些MP3文件进行测试,并测试将现有的MP3转换为WAV / OGG格式以进行测试。

您需要重命名,因为Android资源不包含文件扩展名。确保检查res \ raw中是否有另一个文件具有相同的名称但文件扩展名不同,因为这可能会导致问题。