dor*_*uck 5 android android-mediaplayer
我想用MediaPlayer播放设备铃声,但似乎是元数据标签
ANDROID_LOOP = true
Run Code Online (Sandbox Code Playgroud)
设置MediaPlayer忽略方法setLooping的调用
mMediaPlayer.setLooping(false);
Run Code Online (Sandbox Code Playgroud)
并在任何情况下循环音频.此外,未调用onCompletionListener方法.
我注意到,即使启用了循环,即使像ES Media Player那样的音频应用程序也会将此标记设置为true.
所以我的问题是我能不能
这个问题出现在铃声周围,但它当然不是铃声特定的.有趣的是,我发现如何播放铃声的教程都设置了mMediaPlayer.setLooping(true); 所以他们似乎没有必要处理这个问题......
谢谢

可能不是一个令人满意的答案,但工程师似乎不愿意更改 ogg 文件的行为MediaPlayer和元数据标签ANDROID_LOOP=true。请参阅问题:http://code.google.com/p/android/issues/detail? id=1314
至于临时修改标签,我不知道你该怎么做。
我还没有测试过它,但我相信其他声音格式不会表现出这种行为(例如 mp3 或 wav)。也许您可以将 ogg 文件转换为不同的格式并将它们保留为临时数据(可能对此有所帮助:Java - 将 ogg 转换为 mp3)这当然看起来播放某些文件的开销很大,但至少它们'通常是小文件。