Спасибо, что увидели : Среда разработки : QT 、 windows Проблема : Я хочу создать небольшой инструмент для записи звука, во время записи было много лишних шумов. Зачем? можешь мне помочь?
function: init()
{
outputFile.setFileName("test.raw");
outputFile.open( QIODevice::WriteOnly | QIODevice::Truncate );
QAudioFormat format;
format.setSampleRate(8000);
format.setChannelCount(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
if (!info.isFormatSupported(format))
{
qWarning()<<"default format not supported try to use nearest";
format = info.nearestFormat(format);
}
audio = new QAudioInput(info, format, this);
QTimer::singleShot(10000, this, SLOT(stopRecording()));
audio->start(&outputFile);
qDebug() <<"record begin!";
}
function: stopRecording()
{
audio->stop();
outputFile.close();
delete audio;
qDebug() <<"record end!";
}
Спасибо. Я нашел причину.
Отлично. Тогда вы можете либо удалить этот вопрос, либо написать ответ самостоятельно.
Для записи звука необходимо убедиться, что настройка QT совпадает с настройками системы.
во-первых : Что нужно записывать? микрофон или системный звук. во-вторых: установите его формат
нравиться:
QAudioFormat format;
format.setSampleRate(8000);
format.setChannelCount(1);
format.setSampleSize(16);
Возможно, создайте MCVE (например, в основном этот код плюс main, с добавлением qApp-> quit () в stopRecording), который дублирует проблему, легко выполненную в одном файле .cpp.