c++ - 在 Qt5 中使用 QMediaPlayer 播放流时使用代理?
问题描述
我想在代理服务器后面使用 QMediaPlayer 在 QT5 上播放 webradio 流。
我尝试使用以下解决方案:
如何使代理在 Qt5 中与 QMediaPlayer 一起工作?
但是 QNetworkReply 不是从 QIODevice 派生的,因此它不会编译。
我已经阅读了文档,进行了很多搜索,但没有找到解决方案。
编辑:添加一个最小的可重现示例:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkProxy proxy;
manager->setProxy(proxy);
QNetworkReply *reply = manager -> get(QNetworkRequest( QUrl()));
QMediaPlayer *player = new QMediaPlayer();
player->setMedia(QMediaContent(), reply);
编译器说:
没有已知的参数 2 从 'QNetworkReply*' 到 'QIODevice*' 的转换</p>
编辑:
在 QNetworkReply 的 QT 来源中,我发现:
class QNetworkReplyPrivate;
class Q_NETWORK_EXPORT QNetworkReply: public QIODevice
但是为什么向上转换到 QIODevice 不起作用?如果我尝试进行强制转换,编译器会说:
错误:不能 dynamic_cast 'reply'(类型为 'class QNetworkReply*')类型为 'class QIODevice*'(源是指向不完整类型的指针)
解决方案
感谢您的帮助!
我“只”忘记了包含 QNetworkReply。包括它对我有用
#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>
数小时的故障排除和解决方案非常简单:)
推荐阅读
- c++ - 如何在 cmakelist 中链接自定义静态库
- reactjs - 使用 uniswap 时如何连接后端和前端?
- c++ - C++ 注册 Consexpr 回调
- templates - 从特征函数中返回复制值的迭代器
- gradle - Gradle gluonfx 插件,nativeBuild:“错误:应该在运行时初始化的类在图像构建期间被初始化”
- javascript - 关于 Protractor 中的输入的并行执行
- c# - 为什么在运行 AForge.Video.FFMPEG 时出现错误 BadImageFormatException?
- python - 破折号引导网格不起作用:未显示列
- c# - 任务
退出事件 - python - Pyython 中的 Numpy 数组生成