QT有一个音频信号处理的库,非常强大,可以实现音频采集,设定采集的参数等。本文的程序是在一台电脑中实现采集即时音频信号(电脑连接耳机并且说话),将这个音频信号采集后发送至另一台电脑上,在这一台电脑中连接耳机就可以清晰地听清这个即时语音信号。全程实现的是类似音频通话的功能。
话不多说,上代码。
在.pro文件中首先加入下面两个库,否则会造成编译错误:
QT += network
QT += multimedia
首先是发送端,实现的是语音的采集,以及音频信号的发送:
头文件:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtNetwork/QUdpSocket>
#include <QAudio>//一下这五个是QT处理音频的库
#include <QAudioFormat>
#include <QAudioInput>
#include <QAudioOutput>
#include <QIODevice>
using namespace std;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QUdpSocket *udpSocket;//用于音频信号的发送
QAudioInput *input;
QIODevice *inputDevice;
struct video{
char audiodata[1024];
int lens;
};
private slots:
void onReadyRead();//
};
#endif // MAINWINDOW_H
发送端.cpp文件如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"