Qt Mobility Reference Documentation

Multimedia QML Plugin

Overview

The Multimedia API in the Mobility Project gives developers a simplified way to use audio and video playback, and access camera functionality. The Multimedia QML Plugin provides a QML friendly interface to these features.

Elements

Audio

The Audio element is an easy way to add audio playback to a Qt Quick scene. Mobility provides properties for control, methods (functions) and signals.

The code extract below shows the creation and use of an audio element.

 import Qt 4.7
 import QtMultimediaKit 1.1
 ...

     Audio {
         id: playMusic
         source: "music.wav"
     }
     MouseArea {
         id: playArea
         anchors.fill: parent
         onPressed:  { playMusic.play() }
     }

The snippet above shows how the inclusion of playMusic enables audio features on the element that contains it. So that when the parent's MouseArea is clicked the play() method of the audio element is run. Other typical audio control methods are available such as pause() and stop().

Much of the getting / setting of Audio parameters is done through properties. These include

PropertyDescription

source

The source URL of the media.

autoLoad

Indicates if loading of media should begin immediately.

playing

Indicates that the media is playing.

paused

The media is paused.

status

The status of media loading.

duration

Amount of time in milliseconds the media will play.

position

Current position in the media in milliseconds of play.

volume

Audio output volume: from 0.0 (silent) to 1.0 (maximum)

muted

Indicates audio is muted.

bufferProgress

Indicates how full the data buffer is: 0.0 (empty) to 1.0 (full).

seekable

Indicates whether the audio position can be changed.

playbackRate

The rate at which audio is played at as a multiple of the normal rate.

error

An error code for the error state including NoError

errorString

A description of the current error condition.

The set of signals available allow the developer to create custom behavior when the following events occur,

SignalDescription

onStarted

Called when playback has been started.

onResumed

Called when playback is resumed from the paused state.

onPaused

Called when playback is paused.

onStopped

Called when playback is stopped.

onError

Called when the specified error occurs.

Video

Adding video playback, with sound, to a Qt Quick scene is also easy. The process is very similar to that of Audio above, in fact Video shares many of the property names, methods and signals. Here is the equivalent sample code to implement a video playback element in a scene

 Video {
     id: video
     width : 800
     height : 600
     source: "video.avi"

     MouseArea {
         anchors.fill: parent
         onClicked: {
             video.play()
         }
     }

     focus: true
     Keys.onSpacePressed: video.paused = !video.paused
     Keys.onLeftPressed: video.position -= 5000
     Keys.onRightPressed: video.position += 5000
 }

There are similar features like play() with new features specific to video.

In the above sample when the parent of MouseArea is clicked, an area of 800x600 pixels with an id of 'video', the source "video.avi" will play in that area. Notice also that signals for the Keys element have been defined so that a spacebar will toggle the pause button; the left arrow will move the current position in the video to 5 seconds previously; and the right arrow will advance the current position in the video by 5 seconds.

Most of the differences will obviously be about video control and information. There are many properties associated with the Video element, most of them deal with meta-data, control of the video media and aspects of presentation.

SoundEffect

The SoundEffect element provides a way to play short sound effects, like in video games. Multiple sound effect instances can be played simultaneously. You should use the Audio element for music playback.

 import Qt 4.7
 import QtMultimediaKit 1.1
 ...

     SoundEffect {
         id: effect
         source: "test.wav"
     }
     MouseArea {
         id: playArea
         anchors.fill: parent
         onPressed:  { effect.play() }
     }

In the above sample the sound effect will be played when the MouseArea is clicked.

For a complete description of this element, see SoundEffect

Camera

Adding access to the camera viewfinder, and capturing images is possible by using the Camera element. You can adjust capture settings including white balance, exposure compensation and flash mode, and control zoom.

 import Qt 4.7
 import QtMultimediaKit 1.1

 Camera {
     focus : visible // to receive focus and capture key events when visible

     flashMode: Camera.FlashRedEyeReduction
     whiteBalanceMode: Camera.WhiteBalanceFlash
     exposureCompensation: -1.0

     onImageCaptured : {
         photoPreview.source = preview  // Show the preview in an Image element
     }

 }

For a complete description of this element, see Camera, and look at the QML Camera Example.

X

Thank you for giving your feedback.

Make sure it is related to this specific page. For more general bugs and requests, please use the Qt Bug Tracker.