我的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正确设置此内容的想法吗?
感谢提前帮助!
答案 0 :(得分:0)
您可以尝试使用QNetworkAccessManager机制创建带代理的请求,并将QNetworkReply设置为第二个参数 QMediaPlayer :: setMedia(const QMediaContent& media,QIODevice * stream = Q_NULLPTR)。查看更多信息here。
有一个简短的片段:
<body>
希望这会对你有所帮助。