Используйте потоковую аудиозапись в аудио-менеджере - PullRequest
1 голос
/ 24 мая 2011

Я пытаюсь определить уровень громкости того, что в данный момент подается через микрофон, с помощью 'getStreamVolume' в 'audiomanager'.

Только доступные исходные потоки, перечисленные в документации для audiomanager, предназначены для сигналов тревоги., DTMF, музыка, уведомления, звонки, системные звуки и телефонные звонки.Я не уверен, как направить микрофон через аудио-менеджер, чтобы получить текущую громкость канала.

Любое руководство будет наиболее ценно

Спасибо

1 Ответ

0 голосов
/ 24 мая 2011

getStreamVolume() из AudioManager возвращает настройку громкости, а не фактическую громкость.

Вместо этого вам нужно прочитать значения из потока, получить среднее значение за относительно короткий промежуток времени и использовать это значение.

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

...