Android Audio эффект на файл WAV и сохранить его
требование
Android открывает файл.wav на SD-карте, воспроизводит его, добавляет некоторый эффект (например, эхо, сдвиг высоты тона и т. Д.), Сохраняет файл с эффектом. Просто:(
Что я знаю
- Я могу открыть и воспроизвести файл, используя Soundpool или MediaPlayer.
- Я могу дать некоторый эффект, играя с использованием обоих. т.е. для Media Player я могу установить эффект реверберации окружающей среды. Используя SoundPool, я могу установить скорость воспроизведения, что-то вроде сдвига высоты тона. Я успешно реализую это прямо сейчас.
- Но ни у одного из этих классов нет никакого метода, чтобы сохранить проигрываемый файл. Так что я могу только играть, я не могу сохранить музыку с эффектом.
Что я хочу знать
- Есть ли другие интересные классы, кроме MediaPlayer или SoundPool. Неважно о сохранении, вы просто упомяните класс, я сделаю исследование о сохранении файла с ними.
- Любые сторонние библиотеки, где я могу добавить эффекты и сохранить? Рад, если это с открытым исходным кодом и бесплатно. Но упомяните их, даже если это запатентовано.
- Любые другие области, где я могу посмотреть. Поддерживает ли OpenAL голосовую фильтрацию и голосовое позиционирование? Будет ли это работать с Android?
Готов сделать грязную работу. Пожалуйста, одолжите мне путь..
РЕДАКТИРОВАТЬ:
Сделал еще несколько поисков, и наткнулся на AudioTrack. Но он также не поддерживает сохранение в файл. Так что не повезло и там..РЕДАКТИРОВАТЬ
Хорошо, что если я сделаю это сам? Получите необработанные байты из файла WAV и работайте над этим. Я записал WAV-файл с помощью AudioRecord, получил WAV-файл. Есть ли какой-нибудь ресурс, описывающий низкоуровневую обработку звука (я имею в виду на уровне байтов).РЕДАКТИРОВАТЬ
Ну, щедрость истекла, и я даю щедрость на единственный ответ, который я получил. Через 7 дней я понял- Мы не можем сохранить то, что мы играем, используя MediaPlayer, AudioTrack и т. Д.
- Нет доступных библиотек для обработки аудио.
- Вы можете получить необработанные wav-файлы и выполнить обработку звука самостоятельно. Ответ дал хороший класс-оболочку для чтения / записи wav-файлов. Хороший Java-код для чтения и изменения высоты тона WAV-файлов находится здесь.
1 ответ
Класс WavFile http://www.labbookpages.co.uk/audio/javaWavFiles.html утверждает, что читает и записывает wav-файлы и разрешает манипулирование для каждого семпла через массивы значений семплов. Это, конечно, достаточно мало, общий исходный код 23 Кбайт.
Некоторое время я боролся за создание приложения для Android с включенным классом Wavfile. Это оказалось потому, что и WavFile, и ReadExample (по приведенной выше ссылке) были предназначены как отдельные java-программы, поэтому включите метод main(String [] args){}
, Eclipse видит это и думает, что Class - это отдельная работающая программа, и когда я нажимаю run
Кнопка, пытается запустить только один класс с Java в машине разработки, а не запускать все приложение на моем телефоне. Когда я позабочусь о том, чтобы запустить все приложение с небольшим выпадающим меню на run
Кнопка, у меня нет никаких проблем, и класс WavFile и примеры прямо вонзаются, выдают нулевые предупреждения в IDE и работают так, как рекламируются на моем телефоне.