использовать прокси при воспроизведении потока с помощью QMediaPlayer в Qt5?

Я хочу воспроизвести поток веб-радио в QT5 с помощью QMediaPlayer за прокси-сервером.

Я пытался использовать решение из:

Как заставить прокси работать с QMediaPlayer в Qt5?< /а>

но 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*’

редактировать:

В источниках QT QNetworkReply я нашел:

class QNetworkReplyPrivate; 
class Q_NETWORK_EXPORT QNetworkReply: public QIODevice

но почему не работает приведение к QIODevice? Если я попытаюсь сделать приведение, компилятор скажет:

ошибка: невозможно dynamic_cast «ответить» (типа «класс QNetworkReply*») на тип «класс QIODevice*» (источник — указатель на неполный тип)


person Cherubim    schedule 22.07.2019    source источник
comment
QNetworkReply наследуется от QIODevice.   -  person eyllanesc    schedule 22.07.2019
comment
Компилятор говорит, что неизвестное преобразование аргумента 2 из ‘QNetworkReply*’ в ‘QIODevice*’ и ссылается на: void setMedia(const QMediaContent &media, QIODevice *stream = Q_NULLPTR);   -  person Cherubim    schedule 22.07.2019
comment
извините, это действительно выглядит ужасно, как комментарий. Я отредактировал свой вопрос, пока.   -  person Cherubim    schedule 22.07.2019
comment
Вы включили QNetworkReply: #include <QNetworkReply>?   -  person eyllanesc    schedule 23.07.2019
comment
Спасибо, eyllanesc, это решение моей проблемы!   -  person Cherubim    schedule 23.07.2019


Ответы (1)


Спасибо за помощь!

Я «только» забыл включить QNetworkReply. С этим включает, это работает для меня

#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>

Часы устранения неполадок, и решение было таким простым :)

person Cherubim    schedule 23.07.2019