【问题标题】:How to loop a sound without gaps in Android?如何在Android中无间隙地循环播放声音?
【发布时间】:2012-11-04 18:27:39
【问题描述】:

我想在 android 中循环播放没有间隙的声音。 我尝试使用代码mediaplayer.setLooping(true)来循环播放声音,但是当第一个声音结束并开始下一个声音时,总是会有一点停顿。

【问题讨论】:

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

标签: android android-mediaplayer


【解决方案1】:

尝试在您的应用程序中为声音文件使用 .ogg 文件格式。我遇到了同样的问题,经过大量研究,我尝试了 .ogg 格式,它在 android 中循环,没有任何间隙。

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

您可以使用流行的开源应用程序 VLC Media Player 轻松地将您的声音文件从 .mp3 或其他文件转换为 .ogg。

【讨论】:

  • 在使用SoundPool时也有帮助
  • 在我的情况下不起作用:/
  • 非常感谢它几乎救了我的命,我花了 3 天时间寻找同样的解决方案。
  • 您需要使用一些标签编辑器向该 .ogg 添加一个新标签 (ANDROID_LOOP = true)。然后,如果您通过 mediaPlayer 运行它,它可能会在没有间隙的情况下循环播放(取决于您的声音是否真的有间隙) 注意:这样做您可能会失去对 mediaplayer.setLooping(true) 的控制。有助于使用 RingtoneManager 进行铃声循环
【解决方案2】:

这是 android 操作系统中的一个错误 :( http://code.google.com/p/android/issues/detail?id=18756

【讨论】:

  • 重复别人说过的话,使用OGG格式就可以了。我发现 Audacity 在从文件中删除任何“空白空间”并将其保存到 .OGG 方面做得很好。最好的部分是 Audacity 是免费的。
  • 我尝试切换到使用 Audacity 创建的 .OGG,但没有发现它为我的 21 秒音频样本提供无缝播放。
  • 您必须使用 Audacity 实际修剪音频文件以使其无间隙。
  • 如果你的意思是确保音频文件的开头和结尾没有静音,是的,我做到了。我还在文件的开头和结尾将波形调整为“归零”。我可以使用 Audacity 的“循环播放”(shift-space)命令播放样本,没有听得见的间隙。有什么我想念的吗?
【解决方案3】:

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

public void setNextMediaPlayer (MediaPlayer next)

显然,这对大多数市场(目前为< 3% of the devices is running JB)没有多大帮助,但值得一提。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2015-02-12
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多