Android中用mediaplayer播放ogg文件会一直loop问题
该问题是由于音频文件的特性引起的。系统的音频ringtong文件,该文件格式为ogg,且在文件的metadata里有属性ANDROID_LOOP(值为true)。
当ogg文件有上述属性的时候,使用MediaPlayer播放该文件,无论是否给 player设置loop,都会一直循环播放。
同样的现象可以在Settings->Sound & notification->Phone ringtone->tap ringtong时发现,这里也是循环播放的。可见Android系统针对这类文件,都是这样处理的。
OggExtractor.cpp中,
else if (kMap[j].mKey == kKeyAutoLoop) {
if (!strcasecmp(&comment[tagLen + 1], "true")) {
fileMeta->setInt32(kKeyAutoLoop, true);
}
}