Я использую MediaMetadataRetriever для извлечения метаданных из m4a-файлов на Android-устройстве. Вот код, который я выполняю.Чтение мета и начало воспроизведения m4a-файлов очень медленное на Android
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-файлов, это очень быстро. Например, 25 mp3-файлы проанализированы на под 900ms раз.
Но если я называю это для одного m4a-файл, то тот же код требует 6 секунд казнить. И это очень медленно.
Другое наблюдение, когда я использую Android MediaPlayer, тогда любой mp3-файл начинает играть сразу, в то время как между стартовым m4a-файлом и первым звуком есть такая же 6-секундная задержка.
Я пробовал с различными версиями Android и различными устройствами. Та же проблема.
Есть ли способ избавиться от этой задержки?
Я посмотрел на него, но не хотел иметь в нем еще одну родную библиотеку. Если нет лучшего решения, я могу вернуться к этому варианту. –