Нужна помощь по обработке звука - PullRequest
2 голосов
/ 20 октября 2011

Как получить данные сэмпла из файла стереозвука (.mp3) и вставить их в буфер?Есть ли какая-либо конкретная библиотека с этой функцией?Извините, если вопрос действительно нуб, я очень новичок в аудио программирования.

Заранее спасибо =)

1 Ответ

1 голос
/ 20 октября 2011

"Единственный способ воспроизведения файла MP3 с помощью прямого API Android - это MediaPlayer, который имеет большой вес, медленный и представляет только высокоуровневый API. Если вам нужно смешивать или изменять аудиопотоки или управлять ими с малой задержкойвы сами по себе. "

(через: http://mindtherobot.com/blog/624/android-audio-play-an-mp3-file-on-an-audiotrack/)

Так что это прискорбно.JLayer бесплатен и написан на Java, поэтому вы можете использовать его:

http://www.javazoom.net/javalayer/javalayer.html

Будет ли он достаточно быстрым, зависит от того, какой анализ вы хотите сделать, и какойпроцессор в телефоне, какие другие приложения работают.Все обычные вещи.

Вы можете написать собственный код и использовать библиотеки C / C ++, если у вас есть что-то интенсивное использование процессора, что даст вам больше шансов на анализ в реальном времени:

http://developer.android.com/sdk/ndk/overview.html

Некоторые процессоры ARM имеют векторные инструкции и т. П., Которые вы могли бы использовать, если они доступны, что может повысить скорость:

http://www.arm.com/products/processors/technologies/neon.php

Если чтовы не можете работать в режиме реального времени, вы можете рассмотреть возможность полной или частичной предварительной обработки.Затем кэшируйте данные анализа, чтобы пользователю оставалось только ждать в первый раз ... или дайте им возможность позволить вашему приложению анализировать все файлы в одночасье или еще какое-то время.

...