关于Qt5的录音

  在qt5当中,可以找到QAudioFormat类,QAudioInput类以及QAudioOutput类,在使用这些类的时候需要在pro文件当中加上QT += multime。这样在加上这三个头文件的时候才不会报错,


  	file =new QFile();
        file->setFileName("E:\\nihao.raw");//设置其实设置音频文件的存放路径(输入音频名及存放路径)
        bool is_open =file->open(QIODevice::WriteOnly | QIODevice::Truncate);
        if(!is_open)
        {
            qDebug()<<"打开失败失败"<<endl;
            exit(1);
        }
 
        QAudioFormat format;
        format.setSampleRate(8000); //设置采样的赫兹
        format.setChannelCount(1); //设置通道数通道
        format.setSampleSize(8);   //设置样本大小,一般为8或者16
        format.setCodec("audio/pcm");//设置编解码器
        format.setByteOrder(QAudioFormat::LittleEndian);//
        format.setSampleType(QAudioFormat::UnSignedInt);//
 
        QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
        QString str=info.deviceName();
        qDebug()<<"使用的录音设备是:"<<str<<endl;
        if(!info.isFormatSupported(format))
        {
            format = info.nearestFormat(format);
        }
        input = new QAudioInput(format, this);
        ui->Record_text->setText("录音开始......");
        input->start(file);
 
上面所写就是录音,
 
   file->setFileName("E:\\nihao.raw");
       file->open(QIODevice::ReadOnly);
       QAudioFormat format;
       format.setSampleRate(8000);
       format.setChannelCount(1);
       format.setSampleSize(8);
       format.setCodec("audio/pcm");
       format.setByteOrder(QAudioFormat::LittleEndian);
       format.setSampleType(QAudioFormat::UnSignedInt);
       output = new QAudioOutput(format);
       output->start(file);
这里写的是播放录音,这里的音频全都是写到文件当中去的,若不需要这么做可以写在内存当中,
 
 

这是我第一次写录音的东西,有很多东西写的不是很清楚,若是只需要简单使用,这个应该是可以实现效果,

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值