小编HoB*_*BiT的帖子

如何在Qt中通过以太网播放流音频?

我的目标是通过LAN网络传输*.wav文件,没有延迟或只有最小的.

我们还按部件读取服务器机器上的文件,两者都是320字节.在此之后,我们通过UDP发送数据包并在抖动缓冲区中写入接收.抖动缓冲区的大小为10.我应该在定时器上设置什么延迟以获得清晰的声音?

这是发件人:

void MainWindow::on_start_tx_triggered()
{
    timer1 = new QTimer (this);
    udpSocketout = new QUdpSocket(this);
    qDebug()<<"Start";
    for (int i = 0; i < playlist.size(); ++i)
    {
        inputFile.setFileName(playlist.at(i));
        qDebug()<<inputFile.fileName();
        if (!inputFile.open(QIODevice::ReadOnly))
        {
            qDebug()<< "file not found;";
        }
    }
    connect(timer1, SIGNAL(timeout()), this, SLOT(writeDatagrams()));
    timer1->start(5);
}

void MainWindow::writeDatagrams()
{
    if(!inputFile.atEnd()){
        payloadout = inputFile.read(320);
    }
    qDebug()<<payloadout;
    QDataStream out(&datagramout, QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_7);
    out << qint64(0);
    out << payloadout;
    out.device()->seek(qint64(0));
    out << qint64(datagramout.size() - sizeof(qint64));
    qint64 writtenBytes = udpSocketout->writeDatagram(datagramout, remoteHOST, remotePORT);
    qDebug() << "Sent " << writtenBytes …
Run Code Online (Sandbox Code Playgroud)

audio streaming qt networkstream

8
推荐指数
1
解决办法
7030
查看次数

标签 统计

audio ×1

networkstream ×1

qt ×1

streaming ×1