Все ответы, которые вы ищете, уже находятся на странице учебника.
Как он объясняет в статье, время, которое требуется, кажется нормальным:
Я протестировал его с песней «Schism» с помощью инструмента, который представляет собой песню длиной 6: 47 минут,закодирован на 192 кбит / с.Вес файла составляет 9,31 Мб, что довольно много для imo mp3 ... Без каких-либо оптимизаций (код большого пальца, -O0, -DFPM_DEFAULT == стандартная математика с фиксированной запятой в libmad, без оптимизированной для ассемблера fp математики) для декодирования всех файлов требуется184 секунды на моем Milestone.
Затем он объясняет, как он оптимизировал его.Вы должны выполнить те же шаги:
Святое дерьмо, Бэтмен!Если я устраню вызов buffer.get (samples), который снизится до 44 секунд!Невероятный.Теперь я все еще думал, что это медленный путь, поэтому я начал добавлять оптимизации.Первое, что я сделал, это компилировал в прямую руку вместо кода большого пальца.Вы можете указать для этого цепочку инструментов NDK, поместив ее в файл Android.mk:
LOCAL_ARM_MODE := arm
При включенном декодировании это занимает 36 секунд.Следующее, что я сделал, была агрессивная оптимизация через -O3 в качестве CFLAG.Это сбрило всего 2 секунды, так что ничего особенного.Последняя оптимизация зависит от libmad.Файл config.h, на который я ссылался выше, не определяет математический режим с фиксированной запятой, который должен использовать libmad.Теперь, когда вы посмотрите на fixed.h из libmad, вы можете увидеть некоторые варианты математики с фиксированной точкой.Есть также специальная опция для процессоров, которые используют небольшой код для сборки манипуляторов для выполнения тяжелой работы.Вы можете включить это, передав -DFPM_ARM как CFLAG.Теперь это творило чудеса!Теперь у меня до 20 секунд для декодирования 407 секунд аудио в формате mp3.Это примерно в 20 раз больше, чем у меня.Песня, которую я выбрал, находится на крайнем конце спектра длины песни, который мне придется обработать в моем следующем проекте аудио игры.Песня, которую использует пользователь, будет обработана один раз, и ожидание в течение этих 20 секунд нормально в моей книге.
И самое важное:
Боюсь, я не выпущу источник портированной звуковой платформы , так как это немного беспорядок и потребует некоторой работы для очистки.
Имногие в комментариях рассуждают о библиотеке и говорят, что отказались от нее в пользу libmpg123