"Qt 实现录音设备录音"\n\n要在Qt中实现录音设备录音,可以使用Qt Multimedia模块中的QAudioInput类。\n\n首先,需要在.pro文件中添加以下行,以包含Qt Multimedia模块:\n\n\nQT += multimedia\n\n\n然后,可以使用以下代码来录制音频:\n\ncpp\n#include <QCoreApplication>\n#include <QAudioInput>\n\nint main(int argc, char *argv[]) {\n QCoreApplication a(argc, argv);\n\n // 创建QAudioFormat对象,设置音频格式\n QAudioFormat format;\n format.setSampleRate(44100); // 采样率\n format.setChannelCount(2); // 声道数\n format.setSampleSize(16); // 样本大小(位数)\n format.setCodec("audio/pcm"); // 音频编码格式\n format.setByteOrder(QAudioFormat::LittleEndian); // 字节顺序\n format.setSampleType(QAudioFormat::SignedInt); // 样本类型\n\n // 创建QAudioDeviceInfo对象,获取默认音频输入设备\n QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice());\n\n // 检查是否支持指定的音频格式\n if (!info.isFormatSupported(format)) {\n qWarning() << "Default format not supported, trying to use the nearest.";\n format = info.nearestFormat(format);\n }\n\n // 创建QAudioInput对象,使用默认设备和格式\n QAudioInput audioInput(info, format);\n\n // 打开音频输入设备,并开始录制音频\n QIODevice *inputDevice = audioInput.start();\n\n // 将音频数据写入文件\n QFile outputFile("output.wav");\n if (!outputFile.open(QIODevice::WriteOnly)) {\n qWarning() << "Failed to open output file.";\n return 1;\n }\n inputDevice->open(QIODevice::ReadOnly);\n\n while (audioInput.state() == QAudio::ActiveState) {\n QByteArray audioData = inputDevice->readAll();\n outputFile.write(audioData);\n }\n\n // 停止录制\n audioInput.stop();\n\n return a.exec();\n}\n\n\n上述代码创建了一个QAudioInput对象,使用默认的音频输入设备和指定的音频格式。然后,打开音频输入设备并开始录制音频。录制的音频数据将通过QIODevice对象读取,并写入到输出文件中。最后,当录音状态为QAudio::ActiveState时,持续读取音频数据并写入文件,直到停止录制。\n\n请注意,上述代码仅是一个简单的示例,可能需要根据实际需求进行修改和优化。另外,需要确保使用的音频格式和设备是支持的。


原文地址: http://www.cveoy.top/t/topic/p1Hq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录