如何使代理在Qt5中使用QMediaPlayer?

时间:2016-02-10 17:37:00

标签: c++ http proxy qt5 qmediaplayer

我的Qt项目有点问题。我正在尝试直接使用QMediaPlayer播放网络电台:

QMediaPlayer player;
player.setMedia(QUrl("http://listen.42fm.ru:8000/stealkill"));
player.play();

它有效,但我的另一个约束是设置SSH隧道(端口8000在部署网络上被阻止)。所以我在我的设备上设置了端口转发,我配置了Qt代理,如下所示:

QNetworkProxy proxy;
proxy.setType(QNetworkProxy::Socks5Proxy);
proxy.setHostName("localhost");
proxy.setPort(1234);
QNetworkProxy::setApplicationProxy(proxy);

代理适用于我的应用程序所做的每个HTTP请求,但似乎无法使用QMediaPlayer(当我输入非废话代理主机名时,我的HTTP请求不再起作用,但QMediaPlayer仍可正常工作......)。

有关使用QMediaPlayer正确设置此内容的想法吗?

感谢提前帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用QNetworkAccessManager机制创建带代理的请求,并将QNetworkReply设置为第二个参数 QMediaPlayer :: setMedia(const QMediaContent& media,QIODevice * stream = Q_NULLPTR)。查看更多信息here

有一个简短的片段:

<body>

希望这会对你有所帮助。