Използвайте поточно аудиозапис в аудиомениджъра

Опитвам се да определя нивото на звука на това, което в момента се подава през микрофона с 'getStreamVolume' в 'audiomanager'.

Единствените налични изходни потоци, изброени в документацията за audiomanager, са за аларми, DTMF, музика, известия, звънене на телефона, системни звуци и телефонни обаждания. Не съм сигурен как да насоча микрофона през audiomanager, за да получа текущата сила на звука на емисията.

Всякакви насоки ще бъдат високо оценени

Благодаря


person jblz    schedule 23.05.2011    source източник


Отговори (1)


getStreamVolume() от AudioManager връща настройка за сила на звука, а не действителната сила на звука.

Вместо това трябва да прочетете стойностите от потока, да получите средна стойност за сравнително кратък период от време и да използвате тази стойност.

Според документацията за AudioRecord, тук, използвайте read(byte[], int, int), read(short[], int, int) или read(ByteBuffer, int) .

person CL22    schedule 23.05.2011
comment
Благодаря за отговора, въпреки че не знам много за използването на аудио в Java. Как мога да получа текущия обем от четене на байтове? - person jblz; 24.05.2011