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()
}
}