QMediaPlayer not playing from IODevice
-
Aditional Information:
- Windows 7 Professional 64 bit
- Qt 5.6.0
- MSVC 2013, 32 bit
Update:
I also tried this and this doesn't seem to work too. No errors are set but still my duration is 0.
QMediaPlayer* player = new QMediaPlayer(nullptr, QMediaPlayer::StreamPlayback); QFile* file = new QFile("example.mp4"); if (file->open(QFile::ReadOnly)) { player->setMedia(QMediaContent(), file); player->play(); } else { qDebug() << "Unable to open file."; }
-
You need to install a codecs-pack.. e.g. K-Lite .. or other..
-
I don't know, it is just my suggestion... Maybe the reason is that in case of a stream, the QMediaPlayer do not know the format of a video... because it does not read a video header of a file... :)
-
Thanks, but i have already tried creating a QMediaContent from the video file and passing it to my mediaplayer with the buffer. That didn't work either.
Maybe im understanding it wrong. Maybe the stream has to be actual video or audio data instead of a container like mp4 or mkv? And the QMediaContent the actual information for either video or audio data, instead of the full container?
-
Since i was still unable to solve my problem:
Could someone please provide me a working block of code of a QMediaPlayer playing from a buffer or other IODevice? I would like to provide media-data while the QMediaPlayer plays. QTemporaryFile or something similar isn't an option too since it has to be live.
So basically: Playing from an IODevice while the device provides more data during playtime.
Thanks in advance.
-
Hi.
QTemporaryFile can solve your problem
QTemporaryFile is based on QObject, so you can create a pointer to it and set the parent to QApplication:// in main.cpp QTemporaryFile *file = new QTemporaryFile(&app); // use file in application
file will be deleted when app destructor is called. (end of application)
It is better to create a singleton class derived from QObject that wraps temp file IO
use above method for setting its parent as application -
It's no option. I'm trieing to archieve a "straming"-like behaviour.