2013-03-24 1 views
0

Мне нужно сделать несколько EQing и применить цифровой эффект для WAV-файла. Есть ли способ извлечь отдельные значения проб PCM из «буфера» ниже, чтобы выполнить некоторую EQ/обработку? Является ли AudioTrack правильным способом для этого?Использование AudioTrack для EQ файла .WAV?

private void playSound() { 


audioTrack.play(); 
double input = 0; 
int bufferSize = 512; 
byte[] buffer = new byte[bufferSize]; 
InputStream inputStream = getResources().openRawResource(R.raw.wave); 

    try { 
     while((input = inputStream.read(buffer)) != -1) 
     audioTrack.write(buffer, 0, input); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Вы хотите сделать эквалайзер при воспроизведении, или вы хотите записать звук с выравниванием в файл? – Michael

+0

Воспроизведение. Что ты думаешь? – chilipepper

ответ

1

Вы можете прикрепить Equalizer AudioEffect к audio session вашей аудиодорожке, начиная с уровнем API 9 (Gingerbread).

Другой альтернативой будет обработка данных PCM в приложении перед записью на звуковую дорожку. Вероятно, это будет то, что вы хотели бы сделать в собственном коде, а не в Java по причинам производительности.
Теория реализации собственного эффекта эквалайзера - немного для широкого предмета, который подходит для Q & Формат здесь, в StackOverflow, поэтому вам придется искать информацию об этом в другом месте, если это маршрут, который вы хотите принять.