在Android上阅读元和开始播放m4a文件非常慢

时间:2014-10-15 14:05:52

标签: android android-mediaplayer m4a

我使用MediaMetadataRetriever从Android设备上的m4a文件中检索元数据。这是我执行的代码。

final MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(new File(root, audioFile).getAbsolutePath());

String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
String album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);

mmr.release();

问题在于,当我为mp3文件调用此代码时,速度非常快。例如,在 900ms 时间内分析了25个 mp3文件

但如果我将其称为单个 m4a-file ,则相同的代码需要执行 6秒 。这很慢。

另一个观察是,当我使用Android MediaPlayer时,任何mp3文件立即开始播放,而在启动m4a文件和第一个声音之间有相同的6秒延迟。

我尝试了不同的Android版本和不同的设备。存在同样的问题。

有没有办法摆脱这种延迟?

2 个答案:

答案 0 :(得分:0)

您是否尝试过FFmpegMediaMetadataRetriever

final FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
mmr.setDataSource(new File(root, audioFile).getAbsolutePath());

String title = mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_TITLE);
String album = mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM);
String artist = mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST);

mmr.release();

答案 1 :(得分:0)

您是否尝试过MediaStore

请使用MediaStore测试所关注的MP4文件的速度。可以找到一个示例over here