Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-56627

Two QML Video elements work fine on desktop but not on Android

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • None
    • 5.6.0
    • Multimedia
    • None

    Description

      We want to have multiple simultaneous video playbacks in our application. This example below runs fine on Mac but on Android, I see only video in the left QML Video element.

      I notice, from the signals, that both players enter the PlayingState.
      I also note that, on Android, the status=MediaPlayer.Buffering while on Mac status=MediaPlayer.Buffered. However, the same statuses are also observed when a single Video element is used hence I don't think this difference is relevant here.

      Is this a Qt bug or a platform limitation? Can I detect this platform limitation somehow (in order to adapt the UI accordingly)?

      import QtQuick 2.5
      import QtQuick.Window 2.2
      import QtMultimedia 5.5
      
      Window {
          visible: true
          width: 640
          height: 480
          title: qsTr("Hello World")
      
          Video {
              id: v1
              width: parent.width/2
              height: parent.height
              anchors.left: parent.left
              source: "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"
              onStatusChanged: console.log("Status V1 "+status + "//" + MediaPlayer.Buffering)
              onAvailabilityChanged: console.log("Availability V1 "+availability)
              onErrorChanged: console.log("Error V1 "+error + "//"+ errorString)
              onPlaybackStateChanged: console.log("PlaybackState V1 "+playbackState)
          }
          Video {
              id: v2
              width: parent.width/2
              height: parent.height
              anchors.right: parent.right
              source: "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"
              onStatusChanged: console.log("Status V2 "+status + "//" + MediaPlayer.Buffering)
              onErrorChanged: console.log("Error V2 "+error + "//"+ errorString)
              onPlaybackStateChanged: console.log("PlaybackState V2 "+playbackState)
          }
          Component.onCompleted: {
              v1.play()
              v2.play()
          }
      }
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            valentyn.doroshchuk Valentyn Doroshchuk
            vdaele vdaele
            Votes:
            6 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes