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);
}
}

 

posted @ 2016-02-22 09:37  zsdlut  阅读(889)  评论(0编辑  收藏  举报