QT开发之实现一边接收音频数据并一边播放

本文介绍了在QT中如何实现一边接收音频数据一边进行播放,涉及QMediaPlayer、QAudioInput和QAudioOutput等类的使用。通过确保声音三要素匹配解决噪音问题,并通过重载QIODevice的readData函数实现实时播放。同时,指出QT在不同平台可能存在播放噪音的BUG,建议Windows环境下考虑使用SDL。
摘要由CSDN通过智能技术生成

Windows端和MAC端测试都可使用,但是不是很推荐使用这个

 

QT中播放音频文件的类:QMediaPlayer、QSound

 

主要讲解播放一段数据的方法和一边下载一边播放功能的方法:

QT中提供了相关的类

QAudioDeviceInfo类获取声卡设备的信息。

QAudioInput类操作声卡的录音

QAudioOutput类操作声卡的放音

QAudioFormat类对象用于配置声卡所用的声音三要素

这些类的头文件:

#include <QAudioDeviceInfo>
#include <QAudioOutput>
#include <QIODevice>
#include <QAudioFormat>

1、实现播放一段音频数据

我的数据是uint8_t格式,

QByteArray* byteBuffer = new QByteArray();
byteBuffer->resize(Data_sum);
memcpy(byteBuffer->data(), (char*)(Data), sum);//Data为uint8_t格式,sum为数据长度

QBuffer* input = new QBuffer(byteBuffer);
input->open(QIODevice::ReadOnly);

QAudioFormat audioFormat;
audioFormat.setCodec("audio/pcm");//编码器
audioFormat.setByteOrder(QAudioFormat::LittleEndian);//设定高低位,低位优先
audioFormat.setSampleRate(44100);//采样率
a
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值