1

我正在开发一个应用程序,它接收来自 VLC 服务器的广播。我有一个解决方案,但我需要另一个,因为这个不符合我的需要。

我的问题是,有什么方法可以接收带有 QTcpSocket 作为 QByteArray 的视频并使用 QMediaPlayer 播放它。我找到了下面的文章,但它从来没有真正适合我。

从 BYTE* 流中播放 Qt 中的视频?

这是我一直在尝试做的。我使用带有 HTTP 的 VLC 启动一个流,将端口设置为“8080”,我测试的是连接发生了,但似乎我从未从 VLC 获得任何数据,因为 QTcpSocket 的 readReady() 信号从未发出。虽然我可以使用 read/readAll 从中读取数据。

tcpSocket = new QTcpSocket();
tcpSocket->connectToHost("157.181.196.59", 8080);

QByteArray data = tcpSocket->readAll();
QBuffer buffer(&data);
player->setMedia(QMediaContent(), &buffer);
player->play();    

我知道这不是它的工作方式,但正如我想象的那样,我应该能够在 videoWidget 上看到一些结果。

你能帮我怎么做吗?

4

0 回答 0