2015-01-22 5 views
2

Я пытаюсь использовать Qt5 Multimedia для записи звука с помощью QAudioInput. Я заметил, однако, что, когда начинается мой QAudioInput, он поднимает главный том моего звукового устройства на 100%.Как предотвратить QAudioInput от автоматического увеличения громкости до 100%?

Как я могу предотвратить изменение QAudioInput основного тома?

Моя текущая платформа разработки - Linux с PulseAudio (с отключенным плоским аудио).

Это, как я использую QAudioInput:

QAudioDeviceInfo device_info = QAudioDeviceInfo::defaultInputDevice(); 

QAudioFormat format; 
format.setSampleRate(44100); 
format.setChannelCount(1); 
format.setSampleSize(16) ; 
format.setCodec("audio/pcm"); 
format.setSampleType(QAudioFormat::SignedInt); 
format.setByteOrder(QAudioFormat::LittleEndian); 

std::cout << device_info.deviceName().toUtf8().constData() << std::endl; 
QAudioInput *default_device = new QAudioInput(device_info, format); 

QIODevice *default_io_device = default_device->start(); 
+1

Поскольку я наблюдал подобное поведение и после нескольких попыток, я пришел к выводу, что это ошибка в Qt, и поэтому я открыл отчет об ошибке - https://bugreports.qt.io/browse/QTBUG-47148 –

ответ

0

Существует QAudioInput.setVolume() метод, если вы еще не видели. Сказав это, я попытался использовать QAudioRecorder.setVolume(), и Qt говорит мне: «Настройка громкости во время записи не поддерживается».