Search
Write a publication
Pull to refresh

Comments 4

Учитывая требование min-sdk=9 много чего не посоветуешь.

Тем не менее, есть и хорошие новости, особенно если умерить аппетиты по требованиям:

1) Encoder на Android работает начиная с API 16. Смотреть класс MediaCodec тут.
2) Работает этот MediaCodec, ессно, нативно. Сравнивал со сторонними библиотеками — по крайней мере не медленнее.
3) Я не нашел форка LAME для андроида с хорошей коммерческой лицензией.
4) Даже если бы нашел, перспектива компиляции нативного кода под 3-4 архитектуры не радует. Если только у вас проект не на несколько сотен тысяч…
5) Если говорить о самоделках, то мне пришлось реализовать все через AudioRecord ( а не AudioTrack ). Из плюсов — нет особых проблем Samsung/HTC, листенеры работают. Из минусов — плясок с бубнов хватает и так.

У меня была задача декодировать аудио AAC/MP3, немного обрабтать, запихать туда же сигнал с микрофона, параллельно это все дело визуализировать и закодировать обратно. С ограничением по API 16+ и длиной отрезка ~30 секунд с избытком хватило комбинации AudioRecord + MediaExtractor + MediaCodec + рисование на Canvas.

Если найдете хорошее решение — пишите статью, поддержим ;)

Да, на 16+ уже появился и Equalizer, с помощью которого можно и визуализировать и фильтровать по частотам. Но у меня именно min-sdk=9 и он точно выше 10 не будет поднят ближайшее время… Буду еще сию либу мучить. Как показал тест-апп она реально Low Latency.
4) А для LAME вроде как не требуется коммерческая лицуха (но я в этом вопросе — неспециалист), если апп в итоге некоммерческий, бесплатный на маркете будет, и показ ин-апп рекламы не предвидится. А вот если юзать официальный «франхоферовский» МР3-энкодер, то там уже есть лицензия и зависит она как-то от количества, то ли сжимаемых треков то ли еще чего, не помню точно, но как-то так.
5) Так у меня же тоже AudioRecord для записи, я же исходник привел, а AudioTrack — для воспроизведения. И в AudioRecord тот лиснер таки не работает, во-первых я воочию на практике убедился в этом, тестируя код на НТС, надо учитывать что, возможно, это просто не всех НТС касается, во-вторых на SO о том же пишут.
4) ой )
5) — мне изначально показалось разумным все делать в отдельных потоках, может поэтому и не столкнулся. Тестировалось на HTC One (M7) и на древнем HTC Desire HD.

Вообще тема Low Latency интересна, пишите, что там получится в результате.
Посмотрите BASS Library есть фри/коммерческая лицензия и куча плагинов. Пример взаимодействия с bass из андроид.
Sign up to leave a comment.

Articles