2012-11-16 100 views
16

我想在android中无间隙地循环播放声音。 我试着用代码mediaplayer.setLooping(true)来循环声音,但是当第一个声音结束并且下一个声音开始时总会有一些暂停。如何在Android中无间隙地循环播放声音?

+0

我也是新人,但我确实有一个问题。也许你的声音有差距吗? –

回答

15

尝试使用的.ogg文件格式在应用程序中的声音文件。我有同样的问题,大量的研究后,我试过.OGG格式,它循环没有任何Android的差距

信息关于.OGG格式:http://en.wikipedia.org/wiki/.ogg

您可以轻松地转换成MP3播放声音文件或你有什么,使用流行的.OGG开源软件VLC Media Player

+1

坦克,它的工作原理... – BrantYu

+1

当使用'SoundPool'时也有所帮助 – weston

+6

在我的情况下不起作用:/ – gkiko

1

它通常工作得很好,除非你有一个非常慢的手机。

我会用Audacity之类的音频编辑器仔细检查声音文件,以验证它在文件的开头或结尾没有任何沉默。

+0

只需检查时间戳lol –

7
+0

以重复其他人的说法,使用OGG格式并且您很好。我发现Audacity在剪切文件中的任何“空白”并将其保存到.OGG方面做得很好。最好的部分是Audacity是免费的。 –

+2

我试着切换到.OGG,用Audacity创建,并没有发现它为我的21秒音频样本提供了无缝播放。 –

+1

您将不得不使用Audacity实际修剪音频文件以使其无间隙。 –

3

另外值得注意的是,无缝播放已添加Jelly Bean(API级别16)。它允许您设置应用于播放下一个音频流的辅助媒体播放器,只要主播放器尚未完成播放当前音频。这可能会被用来创建一个无缝循环。

public void setNextMediaPlayer (MediaPlayer next)

显然,这不会是大多数市场(目前< 3% of the devices is running JB)有很大帮助,但仍然值得一提。