Эффект Android Audio в файле wav и сохраните его

Требование

Android открывает файл .wav на SD-карте, воспроизводит его, добавляет некоторые эффекты (например, эхо, сдвиг высоты тона и т. д.), сохраняет файл с эффектом. Простой :(

Что я знаю

  1. Я могу открыть и воспроизвести файл с помощью Soundpool или MediaPlayer.
  2. Я могу дать некоторый эффект, играя, используя оба. т.е. для Media Player я могу установить эффект реверберации окружающей среды. Используя SoundPool, я могу установить скорость воспроизведения, что-то вроде смещения высоты тона. Я успешно реализую их прямо сейчас.
  3. Но ни один из этих классов не имеет никакого метода для сохранения воспроизводимого файла. Так что я могу только играть, я не могу сохранить музыку с эффектом.

Что я хочу знать

  1. Есть ли какие-либо другие интересующие классы, кроме MediaPlayer или SoundPool. Не думайте о сохранении, вы просто упомяните класс, я проведу исследование о сохранении файла с ними.
  2. Любые сторонние библиотеки, где я могу добавить эффекты и сохранить? Рад, если это с открытым исходным кодом и бесплатно. Но упоминайте их, даже если это собственность.
  3. Любые другие области, где я могу изучить. Поддерживает ли OpenAL голосовую фильтрацию вместе с голосовым позиционированием? Будет ли он работать с Android?

Готов делать грязную работу. Пожалуйста, одолжите мне путь ..

РЕДАКТИРОВАТЬ:

Did some more searching, and come across AudioTrack. But it also won't support saving to a file. So no luck there also..

РЕДАКТИРОВАТЬ

Ok, what if I do it myself? Get raw bytes from a wav file, and work on that. I recorded a wav file using AudioRecord, got a wav file. Is there any resource describing low level audio processing (I mean at the bytes level).

РЕДАКТИРОВАТЬ

Well bounty time is up, and I am giving bounty to the only answer that I got. After 7 days, what I understood is

  1. Мы не можем сохранить то, что играем, используя MediaPlayer, AudioTrack и т. д.
  2. Нет доступных для использования библиотек обработки звука.
  3. Вы можете получить необработанные файлы wav и самостоятельно обработать звук. Ответ дал хороший класс-оболочку для чтения/записи wav-файлов. Хороший Java-код для чтения и изменения высоты тона файлов wav находится здесь .

person Krishnabhadra    schedule 22.11.2012    source источник
comment
Вам обязательно нужно получить байтовый буфер обработанного аудио и записать его в файл.   -  person Vipul    schedule 22.11.2012
comment
@VipulShah есть идеи, как это сделать?   -  person Krishnabhadra    schedule 22.11.2012
comment
Пусть это поможет вам. Я не знаю, можно ли добавлять эффекты таким образом: stealthcopter.com/blog/2010/01/   -  person Bruno Bieri    schedule 22.11.2012
comment
@viperbone, вы уверены, что правильно связались? не могу открыть ссылку   -  person Krishnabhadra    schedule 22.11.2012
comment
Да, у меня ссылка работает. Пожалуйста, откройте это и просмотрите третью запись: stealthcopter.com/blog/2010/01   -  person Bruno Bieri    schedule 22.11.2012
comment
Хм, странно.. Я тоже не могу открыть новую ссылку.. может быть проблема с брандмауэром..   -  person Krishnabhadra    schedule 22.11.2012
comment
Можно ли добавить эффекты в прямую трансляцию с микрофона?   -  person Adil Malik    schedule 08.10.2013
comment
@Krishnabhadra: вы закончили добавлять эффекты после сохранения? если да, можете ли вы поделиться кодом, вы спасете мне жизнь :)   -  person Pradeep Bishnoi    schedule 16.08.2017
comment
@PradeepBishnoi Извини, друг, я сделал это около 5 лет назад. У меня больше нет доступа к этому коду.   -  person Krishnabhadra    schedule 17.08.2017


Ответы (1)


Класс WavFile http://www.labbookpages.co.uk/audio/javaWavFiles.html утверждает, что может читать и записывать wav-файлы и разрешать манипуляции с выборкой через массивы значений выборки. Это, конечно, разумно мало, общий исходный код 23 КБ.

Какое-то время я пытался создать приложение для Android с включенным классом Wavfile. Оказалось, что и WavFile, и ReadExample (из приведенной выше ссылки) были задуманы как автономные Java-программы, поэтому включите метод main(String [] args){}. Eclipse видит это и считает, что класс является автономной исполняемой программой, и, когда я нажимаю кнопку run, пытается выполнить только один класс с java на машине разработки вместо запуска всего приложения на моем телефоне. Когда я забочусь о том, чтобы запустить все приложение с помощью небольшого раскрывающегося меню на кнопке run, у меня не возникает никаких проблем, и класс WavFile и примеры сразу появляются, не дают никаких предупреждений в среде IDE и работают так, как рекламируется. работает на моем телефоне.

person emrys57    schedule 30.11.2012
comment
можно ли добавить эффекты к прямому эфиру с микрофона? - person Adil Malik; 08.10.2013
comment
Извините, понятия не имею. - person emrys57; 09.10.2013