找回密码
 立即注册
收起左侧

QT 采集数据通过音频播放QIODevice::write连续输出会有内存泄...

0
回复
9439
查看
[复制链接]
累计签到:207 天
连续签到:1 天
来源: 2021-1-18 10:24:02 显示全部楼层 |阅读模式
5Qter豆
QAudioOutput *output;
    QIODevice *outputDevice;
    output = NULL;

    QAudioFormat format;
    format.setSampleRate(8000);
    format.setChannelCount(2);
    format.setSampleSize(16);
    format.setCodec("audio/pcm");
    format.setSampleType(QAudioFormat::SignedInt);
    format.setByteOrder(QAudioFormat:ittleEndian);
    if(output == NULL)
    {
        output = new QAudioOutput(format,this);
        output->setVolume(0.05);
        outputDevice = output->start();//开始播放
    }

    while(1)
    {
           QThread::msleep(1);
            QByteArray array;
            int len_fVar = sizeof(fVar);
            array.resize(len_fVar);
            memcpy(array.data(), &fVar, len_fVar);
            outputDevice->write(array,array.size());
        }
    }

其实就是最后的write出问题,尝试发送完后waitForBytesWritten以及发送前判断bytesToWrite()好像都不能解决问题,求助!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了