Есть ли другой способ получить текущий уровень громкости, кроме как через менеджер звука? - PullRequest
0 голосов
/ 29 июня 2018

Я создаю приложение для Android, чтобы устанавливать и получать уровни звука. Используя аудио менеджер, мы получаем только 15 уровней звука. Мне нужно отобразить эти уровни звука в процентах, потому что пользователь будет давать уровень звука в процентах и ​​получать в процентах. Наличие только 15 уровней звука невозможно отобразить в процентах. Есть ли другой способ получить текущий уровень громкости, кроме как через аудио-менеджер в Android? Мне нужно использовать подход ndk, потому что мне нужно дать его в виде файла .jar.

1 Ответ

0 голосов
/ 29 июня 2018

Попробуйте, используя Визуализатор .

Ниже приведен код, который может вам помочь:

    private Visualizer audioOutput = null;
    int rate = Visualizer.getMaxCaptureRate();
    audioOutput = new Visualizer(0); // get output audio stream
    audioOutput.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
        @Override
        public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
            intensity = ((float) waveform[0] + 128f) / 256;
            Log.d("vis", String.valueOf(intensity));
        }

        @Override
        public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {

        }
    },rate , true, false); // waveform not freq data
    Log.d("rate", String.valueOf(Visualizer.getMaxCaptureRate()));
    audioOutput.setEnabled(true);
...