Qt 录音程序

mainwindow.cpp
 
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
//开始录音
void MainWindow::on_start_clicked()
{
    file =new QFile();
    file->setFileName("E:\\nihao");//设置其实设置音频文件的存放路径(输入音频名及存放路径)
    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);
    format.setCodec("audio/wav");
    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->label->setText("录音开始......");
    input->start(file);
 
}
 
//停止录音
void MainWindow::on_finish_clicked()
{
    input->stop();
    file->close();
    ui->label->setText("录音结束......");
}
//播放录音
void MainWindow::on_play_clicked()
{
     file->setFileName("E:\\test.wav");
     file->open(QIODevice::ReadOnly);
 
     QAudioFormat format;
     format.setSampleRate(8000);
     format.setChannelCount(1);
     format.setSampleSize(8);
     format.setCodec("audio/wav");
     format.setByteOrder(QAudioFormat::LittleEndian);
     format.setSampleType(QAudioFormat::UnSignedInt);
 
     output = new QAudioOutput(format);
     output->start(file);
}
 
mainwindow.h
 
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QMultimedia>
#include <QFile>
#include <QDebug>
#include <QAudioFormat>
#include <QAudioDeviceInfo>
#include <QAudioInput>
#include <QTimer>
#include <QAudioOutput>
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void on_start_clicked();
 
    void on_finish_clicked();
 
    void on_play_clicked();
 
private:
    Ui::MainWindow *ui;
    QFile *file;
    QAudioInput * input;
    QAudioOutput* output;
};
 
#endif // MAINWINDOW_H

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS中实现Qt录音功能需要进行以下几个步骤: 1. 首先,需要安装Qt开发环境。可以通过在CentOS系统中使用包管理器(如yum或dnf)来安装Qt开发工具包(qt-devel)。 2. 在Qt中使用录音功能,需要引入Qt Multimedia模块。可以在Qt Creator中创建一个新的Qt项目,选择Qt Multimedia模板。 3. 在Qt项目中,使用QAudioRecorder类来实现录音功能。QAudioRecorder是Qt Multimedia模块中的一个类,提供了简单易用的录音功能接口。 4. 设置录音参数。通过QAudioRecorder的setEncodingSettings函数可以设置录音的格式(如采样率、位深度、声道数等)。 5. 开始录音。调用QAudioRecorder的record函数来启动录音。 6. 停止录音。调用QAudioRecorder的stop函数来停止录音。 7. 保存录音文件。通过QAudioRecorder的setOutputLocation函数设置录音文件的保存路径,然后调用QAudioRecorder的outputLocation函数获取保存路径。 8. 编译和运行Qt项目。在Qt Creator中点击“编译”按钮,然后点击“运行”按钮,即可运行Qt录音程序。 总结:在CentOS系统中,可以通过安装Qt开发环境和使用Qt Multimedia模块来实现Qt录音功能。通过QAudioRecorder类的相关函数来设置录音参数、开始录音、停止录音和保存录音文件。编译和运行Qt项目后,即可实现在CentOS系统中录音功能。 (说明:以上回答为简要介绍,具体实现细节可能因系统版本和Qt版本而有所差异,具体操作还需根据实际情况进行调整)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值