【Qt\C++】Qt实现简易对话程序

本文详细介绍了如何通过Qt库开发一个包含音频输入、输出、UDP通信和通话计时功能的语音对话程序,包括了关键组件的初始化、事件处理和通信逻辑。

这是一个通过Qt实现的语音对话程序,我将通过几个步骤带你程序实现逻辑

设计思路:

1、使用QAudioInput进行音频输入;使用QAudioOutput进行音频输出
2、使用UDP进行音频数据传输
3、使用QTimer进行通话计时

头文件定义:

#include <QWidget>
#include <QUdpSocket>
#include <QAudioInput>
#include <QAudioOutput>
#include <QIODevice>
#include <QTimer>
#include <QTime>

namespace Ui {
   
   
class VoiceCall;
}

class VoiceCall : public QWidget
{
   
   
    Q_OBJECT

public:
    explicit VoiceCall(QWidget *parent = 0);
    ~VoiceCall();

private:
    //初始化音频
    void initAudio();

    //开始通话
    void startCall();

    //挂断通话
    void hungUp();

private slots:
    void on_btn_dial_clicked();

    void socketRead();

    void audioRead();

    void on_btn_hungUp_clicked();

    void timeOut();

private:
    Ui::VoiceCall *ui;
    //UDP
    QUdpSocket *m_pSocket;
    //音频输入
    QAudioInput *m_pAudioInput;
    //音频输出
    QAudioOutput *m_pAudioOutput;

    //音频输入IO
    QIODevice *m_pAudioInputIO;
    //音频输出IO
    QIODevice *m_pAudioOutputIO;

    //对方IP
    QHostAddress m_address;
    //对话端口
    int m_port;
    //通话计时
    QTime m_time;
    //通话计时定时器
    QTimer *m_pTimer;
};

创建UDP通信和初始化音频

VoiceCall::VoiceCall(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::VoiceCall)
{
   
   
    ui->setupUi(this);
    m_pSocket = new QUdpSocket(this);
    m_pSocket->bind(QHostAddress::Any, 8000);
    connect(m_pSocket
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mrack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值