您可以使用Qt的QAudioInput类来实现录音设备录音5秒的功能。以下是一个示例代码:

#include <QCoreApplication>
#include <QAudioInput>
#include <QBuffer>
#include <QTimer>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建QBuffer对象来保存录音数据
    QBuffer buffer;
    buffer.open(QIODevice::ReadWrite);

    // 创建QAudioFormat对象来设置录音参数
    QAudioFormat format;
    format.setSampleRate(44100);
    format.setChannelCount(1);
    format.setSampleSize(16);
    format.setCodec("audio/pcm");
    format.setByteOrder(QAudioFormat::LittleEndian);
    format.setSampleType(QAudioFormat::SignedInt);

    // 创建QAudioInput对象来录音
    QAudioInput input(format);
    input.start(&buffer);

    // 设置定时器,录制5秒后停止录音
    QTimer timer;
    timer.setSingleShot(true);
    timer.start(5000);

    // 当定时器超时时,停止录音并退出应用
    QObject::connect(&timer, &QTimer::timeout, [&](){
        input.stop();
        a.quit();
    });

    return a.exec();
}

这段代码创建了一个QBuffer对象来保存录音数据,然后使用QAudioFormat对象来设置录音参数。接下来,创建了一个QAudioInput对象来录音,并将录音数据写入到QBuffer中。

然后,使用QTimer来设置一个5秒的定时器,当定时器超时时,停止录音并退出应用。

请注意,为了使这段代码能够正常工作,您需要在Qt项目文件中添加multimedia模块的依赖,例如:

QT += core multimedia

希望对您有帮助

qt实现录音设备录音5秒

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

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