[Development] The dark side of QtMultimedia

Gianluca gmaxera at gmail.com
Mon Nov 17 08:32:02 CET 2014

Il giorno 17/nov/2014, alle ore 01:48, Thiago Macieira <thiago.macieira at intel.com> ha scritto:

> On Monday 17 November 2014 00:34:48 Nichols Andy wrote:
>> This is a bit of a side issue from the topic at hand, but I am the correct
>> person to answer this question so I will.  Regarding VideoOutput on iOS
>> there is currently a serious limitation that we have been unable to over
>> come.  If you are using the QWidget based API on iOS (and you probably
>> shouldn’t be) then everything should work fine.  That is because it is easy
>> to embed “native” controls in QWidget hierarchies, and thats what we do for
>> QtMultimedia video output (overlay a AVPlayerLayer where the video output
>> should go).  However when we would like to render video in a Qt Quick 2
>> scene then we need to be able to render the video to a texture.  On OS X it
>> is possible to render video to a OpenGL texture from a hidden AVPlayerLayer
>> window, and then render that in the Qt Quick 2 scene, but that API is not
>> available on iOS.  There is AFAIK currently no high-level API to render
>> video from an AVPlayer to an OpenGL texture on iOS.  The work around to
>> provide any video at all in Qt Quick 2 is to to instead render to a
>> “Window” control which instead falls back to the overlaying the native
>> video window surface on top of the QQuickWindow.  Yes it is less than
>> ideal, but we are not the only framework with this limitation.
> Why do you want to render video non-fullscreen anyway on a device with a small 
> screen? Once the user clicks the play button, go to full screen with rotation 
> support.

I don’t want to play in non-fullscreen, I typically play in full-screen. But the transition between full-screen video and QML side it’s very strange. I posted on the forum and someone told me that it’s a know limitations. But maybe he was wrong.
The problem is that when you change the visible property of VideoOutput on iOS you see on the screen something like a very fast flickering like it would be an animation moving out of the screen the video. This is very disturbing for a user.

And also, even when you play full-sreen a video, I want to put some overlay controls that appear and disappear on touch showing the play/pause button, the close button, the progress, the volume, etc. This is cannot possibile at the moment. (But this is less important that the ‘flickering’ problem).


More information about the Development mailing list