Я пытаюсь определить уровень громкости того, что в настоящее время подается через микрофон с помощью 'getStreamVolume' в 'audiomanager'.
Доступны только исходные потоки, перечисленные в документации для audiomanager, для сигналов тревоги, DTMF, музыки, уведомлений, телефонных звонков, системных звуков и телефонных звонков. Я не уверен, как проложить микрофон через аудиомастера, чтобы получить текущий объем фида.
Любое руководство будет оценено наиболее высоко
Спасибо
getStreamVolume()
of AudioManager
возвращает значение громкости, а не фактический том.
Вместо этого вам нужно прочитать значения из потока, получить среднее значение за относительно короткий промежуток времени и использовать это значение.
В соответствии с документацией для AudioRecord
, здесь, используйте read(byte[], int, int)
, read(short[], int, int)
или read(ByteBuffer, int)
.