安卓媒体播放器MP3与WAV格式对比

6

我想知道在Android媒体播放器上,加载和播放小的wav文件是否比小的mp3文件更快?这些wav文件大约30 KB,与mp3文件相同大小的文件约为20 KB。mp3文件具有节省资源空间的优点。声音文件必须以分秒计时播放。

4个回答

4
对于这样的小声音,您可以通过SoundPool获得最佳效果。

是的,这正是我需要的。我应该补充一下,声音似乎等待另一个完成后再加载和播放。我以为它可以在加载新的原始声音后延迟播放。这可能是正确的,但Soundpool似乎已经加载了声音,如果需要可以重叠。我使用了http://www.droidnova.com/creating-sound-effects-in-android-part-2,695.html上的帮助来运行我的代码。谢谢。 - Tim Wayne

1

即使是最弱的Android设备也具有足够的计算能力来播放mp3,而且可能还有相应的硬件加速。真正的问题是播放wav与播放mp3的设置开销,这应该很容易通过编程方式测量。

我有些惊讶你使用mp3时得到如此差的压缩比。即使是无损压缩算法,也倾向于使用wav时获得2:1的压缩比。考虑到Android设备可能没有连接到音质优良的扬声器,你应该可以使用64 kbit/s单声道mp3压缩,甚至更低。如果您可以将文件大小控制在4K以下,它将适合单个内存页面,这是您可以为操作系统降低的最低限度。

如果由于某种原因你只能使用1.5:1的压缩比,那么这额外的工作可能就不值得了。


我使用Goldwave将WAV压缩为MP3,通常可以得到一个更小的文件,但这些文件时间很短(有时少于一秒),所以也许这就是为什么文件只会稍微小一点的原因。 - Tim Wayne

1
Wav文件使用更多的空间,因为它们具有更高的采样率。理论上,声音波形将跟踪更多点,因此播放wav需要更多的处理能力。此外,Wave是未压缩的,这意味着它具有从中获取的所有信息。当您将CD转换为Wav时,您更或多或少拥有原始副本。当您转换为MP3时,它使用较少的参考点并且会丢失细节。其次,大多数MP3编码器会标准化音乐,这是一种将安静部分变响、响亮部分变小的花哨方式。尽管如此,有些人听不出差别,这主要取决于您所使用的耳机/扬声器类型... 总之,两种格式都不应该有延迟,唯一的区别应该是声音文件的采样率或“分辨率”。

0

我没有技术“支持”来支持我的观点,但既然没有人尝试过这个问题,那我就来试试。

我知道mp3比wav有更好的压缩率,因此文件更小。然而,这意味着需要更多的CPU来“解压”文件。(这可能是在专用硬件上完成的,因此可能是无关紧要的。)此外,由于文件将被膨胀,看到mp3文件的较小大小并认为它会更快地加载和播放可能是具有欺骗性的。

考虑到wav文件格式的历史以及它作为在不同程序之间交换声音文件时的“最低公共分母”(根据Wikipedia),我会做出一个合理的猜测,即加载和播放小的wav文件会更快。这非常依赖于Android音频库的软件实现以及硬件,因此如果有人了解更多信息,很高兴听到他们的看法。


看起来Soundpool可以解决我当前的问题,即相近的声音不够精确。但我也想听听他们的意见。我相信较小的文件大小很好,因为它是原始资源,但有一些解压时间。谢谢。 - Tim Wayne

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