I searched carefully to find the answer to my problem, but no other post has been helpful so far. I am developing an application in Qt where I need to play a video stream that is received through a user protocol. I found myself trying to feed these packages in QMediaPlayer in every way without success. My idea was to write incoming packages in QBuffer and then read them from QMediaPlayer. Follow my test:
class VideoPlayer : public QWidget
{
public slots:
void play();
void handlePacket(QByteArray);
[...]
private:
QMediaPlayer mediaPlayer;
QBuffer buffer;
};
VideoPlayer::VideoPlayer(QWidget *parent)
: QWidget(parent)
, mediaPlayer(0, (QMediaPlayer::StreamPlayback))
{
buffer.open(QBuffer::ReadWrite);
}
void VideoPlayer::handlePacket(QByteArray packet)
{
buffer.buffer().append(packet);
}
void VideoPlayer::play()
{
mediaPlayer.setMedia(QMediaContent(), &buffer);
mediaPlayer.play();
}
QMediaPlayer mediaPlayer.setMedia(QMediaContent(), &buffer), , , , . , , QByteArray ( , QIODevice:: readyRead , )? QMediaPlayer , setMedia. QMediaPlayer , ?
? QIODevice - Qt, QMediaContent?
- , ?
Qt 5.4.
.