Невозможно определить громкость в FMOD

Я пытаюсь получить громкость микрофонного входа с помощью Fmod, но getVolume всегда возвращает 0.
Да, я проверил, и мой микрофон работает нормально.

Это работает в цикле:

float tempvolume = 0.0f;
result = channel->getVolume(&tempvolume);
ERRCHECK(result);

//Set the sound volume
channel->getVolume(&tempvolume);
if (tempvolume < 0.1f){
do something
}else{
do something else
}

Но, как я уже сказал, tempvolume всегда равен 0.0

Что я могу сделать?

РЕДАКТИРОВАТЬ:
Теперь я понимаю, что «getVolume» просто возвращает громкость, установленную для канала. Таким образом, теперь весь вопрос меняется на «Как определить громкость с микрофона?»

0

Решение

FMOD не дает никакого представления об аппаратном уровне или уровне громкости ОС для микрофона.

Если вы хотите измерить громкость текущего сигнала записи, рассмотрите System :: recordStart, воспроизведите возвращенный FMOD :: Sound, затем вызовите Channel :: getWaveData. Вы можете обрабатывать волновые данные так, как вам нравится, при поиске пиков или среднеквадратических значений.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector