ANDROID_LOOP = true - 如何避免MediaPlayer使用此元数据标记循环音频

时间:2012-10-11 07:52:13

标签: android android-mediaplayer

我想用MediaPlayer播放设备铃声,但似乎是元数据标签

ANDROID_LOOP = true

设置MediaPlayer忽略方法 setLooping

的调用
mMediaPlayer.setLooping(false);

并在任何情况下循环音频。此外,未调用onCompletionListener方法。

我注意到,即使是否启用了循环,即使是像这种标签的ES媒体播放器循环音频这样的音频应用设置为真。

所以我的问题是,如果我可以

  • 使MediaPlayer忽略此标记
  • 临时修改标签,以便MediaPlayer不循环音频

围绕铃声出现了这个问题,但它当然不是铃声特有的。有趣的是,我发现如何播放铃声的教程都设置了mMediaPlayer.setLooping(true);所以他们似乎不必处理这个问题...

由于

enter image description here

1 个答案:

答案 0 :(得分:2)

可能不是一个令人满意的答案,但工程师似乎并不倾向于改变ogg文件的MediaPlayer和元数据标签ANDROID_LOOP=true的行为。请参阅问题:http://code.google.com/p/android/issues/detail?id=1314

至于临时修改标签,我不知道你怎么做。

我没有测试过,但我相信其他声音格式没有表现出这种行为(例如mp3或wav)。也许您可以将ogg文件转换为不同的格式并将它们保存为临时数据(可能有助于此:Java - Convert ogg to mp3)这当然看起来像回放一些文件需要很多开销,但至少它们是通常是小文件。