Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QMediaPlayer not playing from IODevice
Forum Updated to NodeBB v4.3 + New Features

QMediaPlayer not playing from IODevice

Scheduled Pinned Locked Moved Unsolved General and Desktop
qmediaplayerqbufferqbytearraystreamingqiodevice
16 Posts 8 Posters 11.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    kuzulis
    Qt Champions 2020
    wrote on last edited by
    #7

    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... :)

    O 1 Reply Last reply
    0
    • K kuzulis

      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... :)

      O Offline
      O Offline
      onek24
      wrote on last edited by onek24
      #8

      @kuzulis
      Well, thank you anyway. Sadly installing a codec pack didn't fix the problem.

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #9

        Hi,

        Checking the doc of setMedia:

        Setting the media to a null QMediaContent will cause the player to discard all information relating to the current media source and to cease all I/O operations related to that media.
        

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        O 1 Reply Last reply
        0
        • SGaistS SGaist

          Hi,

          Checking the doc of setMedia:

          Setting the media to a null QMediaContent will cause the player to discard all information relating to the current media source and to cease all I/O operations related to that media.
          
          O Offline
          O Offline
          onek24
          wrote on last edited by onek24
          #10

          @SGaist

          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?

          1 Reply Last reply
          0
          • O Offline
            O Offline
            onek24
            wrote on last edited by onek24
            #11

            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.

            M 1 Reply Last reply
            0
            • O onek24

              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.

              M Offline
              M Offline
              MajidKamali
              wrote on last edited by
              #12

              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

              O 1 Reply Last reply
              -1
              • M MajidKamali

                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

                O Offline
                O Offline
                onek24
                wrote on last edited by
                #13

                @MajidKamali

                It's no option. I'm trieing to archieve a "straming"-like behaviour.

                C 1 Reply Last reply
                0
                • O onek24

                  @MajidKamali

                  It's no option. I'm trieing to archieve a "straming"-like behaviour.

                  C Offline
                  C Offline
                  chachora
                  wrote on last edited by
                  #14

                  @onek24 Finally did you find the solution?

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    hariny
                    wrote on last edited by
                    #15

                    Did anyone solve this?
                    I am trying to decrypt a video before supplying the bytes to qmediaplayer. it doesn't seem to connect to the qiodevice.

                    M 1 Reply Last reply
                    1
                    • H hariny

                      Did anyone solve this?
                      I am trying to decrypt a video before supplying the bytes to qmediaplayer. it doesn't seem to connect to the qiodevice.

                      M Offline
                      M Offline
                      Mohammad Kanan
                      wrote on last edited by Mohammad Kanan
                      #16

                      @hariny , @onek24 Since this thread was not resolved;
                      the buffer is not open !!!
                      your are missing two lines of code:

                              buffer->open(QIODevice::ReadOnly);
                              buffer->seek(0);
                      
                      1 Reply Last reply
                      -1

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved