До сих пор получить DB:Android AudioRecord PCM в
byte data[] = new byte[recBufSize];
read = audioRecord.read(data, 0, recBufSize);
long v = 0;
for (int i = 0; i < data.length; i++) {
v += Math.abs(data[i]);
}
double mean = v/(double) read;
final double volume = 20 * Math.log10(mean);
Некоторые устройства работают, как и ожидалось, но при работе на других устройствах, значения v
, mean
и volume
не меняют
I. хочет, чтобы получить значение, чтобы определить, является ли пользователь говорит или нет.
это демо может работать поверх часть оборудования по графике, объем не говорить и говорить, когда изменчивость является относительно большой, но еще и другими устройствами в основном не Какие колебания.
Перевод:
В этой демонстрации, громкость либо приглушенный или очень громко, когда он работает на одном устройстве, но на другом устройстве, не существует в принципе никаких других колебаний
Если нет звука, ваши переменные («v», «значит», «Volumn») равна нулю – anhtuannd
я. решение моей проблемы с http://stackoverflow.com/questions/28013253/android-make-a-recorded-pcm-raw-data-playable?nsukey=E%2FFfeAOIKqB0Nzt29eUIERVepOmA%2FzjyWASFhyoL0ZH%2B2280wYaLSiiMszZfjGt9JdMHMh4PwGAVYjHWtrJFmLCtogY3HBjNRKoQO8ceWSpVIkldYa2PcLzclLsT5LE1yMcONwZ1SSmRHnM0lRG0ccEd4kpTnC%2FB48LG4%2FDKYj7zvRKhvOA7lqF8mMfIVnk4 –