Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 50facae208d4a6f280e44a513b104320 > files > 510

qt-mobility-doc-1.2.0-13.mga5.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- multimedia.qdoc -->
  <title>Qt Mobility 1.2: Multimedia</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="content"> 
    <a href="index.html" class="qtref"><span>QtMobility Reference Documentation</span></a>
  </div>
  <div class="breadcrumb toolblock">
    <ul>
      <li class="first"><a href="index.html">Home</a></li>
      <!--  Breadcrumbs go here -->
<li>Multimedia</li>
    </ul>
  </div>
</div>
<div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#no-special-namespace">No Special Namespace</a></li>
<li class="level1"><a href="#overview">Overview</a></li>
<li class="level2"><a href="#audio">Audio</a></li>
<li class="level2"><a href="#video">Video</a></li>
<li class="level1"><a href="#camera-support">Camera Support</a></li>
<li class="level2"><a href="#still-images">Still Images</a></li>
<li class="level2"><a href="#video-clips">Video Clips</a></li>
<li class="level2"><a href="#focus">Focus</a></li>
<li class="level2"><a href="#canceling-asynchronous-operations">Canceling Asynchronous Operations</a></li>
<li class="level1"><a href="#examples">Examples</a></li>
<li class="level2"><a href="#record-a-sound-source">Record a Sound Source</a></li>
<li class="level2"><a href="#play-a-media-file">Play a Media File</a></li>
<li class="level2"><a href="#slide-show">Slide Show</a></li>
<li class="level2"><a href="#camera-example">Camera Example</a></li>
<li class="level2"><a href="#qml-camera-example">QML Camera Example</a></li>
<li class="level1"><a href="#reference-documentation">Reference documentation</a></li>
<li class="level2"><a href="#main-audio-and-video-classes">Main audio and video classes</a></li>
<li class="level2"><a href="#camera-classes">Camera classes</a></li>
<li class="level2"><a href="#advanced-usage">Advanced usage.</a></li>
<li class="level2"><a href="#qml-elements">QML Elements</a></li>
</ul>
</div>
<h1 class="title">Multimedia</h1>
<span class="subtitle"></span>
<!-- $$$multimedia.html-description -->
<div class="descr"> <a name="details"></a>
<p><a href="qtmultimediakit.html">QtMultimediaKit</a> provides a set of APIs that allow the developer to play, record and manage a collection of media content. It is dependent on the <a href="http://qt.nokia.com/doc/4.7/qtmultimedia.html">QtMultimedia</a> module. <a href="qtmultimediakit.html">QtMultimediaKit</a> is the recommended API to build multimedia applications using Qt. The Phonon API is no longer recommended.</p>
<a name="no-special-namespace"></a>
<h2>No Special Namespace</h2>
<p>Unlike the other APIs in QtMobility, the Multimedia API is <i>not</i> in the <i>QtMobility</i> namespace.</p>
<a name="overview"></a>
<h2>Overview</h2>
<p>This API delivers an easy to use interface to multimedia functions. The developer can use the API to display an image, or a video, record sound or play a multimedia stream.</p>
<p>There are several benefits this API brings to Qt. Firstly, the developer can now implement fundamental multimedia functions with minimal code, mostly because they are already implemented. Also there is a great deal of flexibility with the media source or the generated multimedia. The source file does not need to be local to the device, it could be streamed from a remote location and identified by a URL. Finally, many different codecs are supported 'out of the box'.</p>
<p>The supplied <a href="#qtmultimediakit-examples">examples</a> give a good idea at the ease of use of the API. When the supporting user interface code is ignored we can see that functionality is immediately available with minimal effort.</p>
<a name="audio"></a>
<h3>Audio</h3>
<p>The Audio Recorder example is a good introduction to the basic use of the API. We will use snippets from this example to illustrate how to use the API to quickly build functionality.</p>
<p>The first step is to demonstrate recording audio to a file. When recording from an audio source there are a number of things we may want to control beyond the essential user interface. We may want a particular encoding of the file, MP3 or Ogg Vorbis for instance, or select a different input source. The user may modify the bitrate, number of channels, quality and sample rate. Here the example will only modify the codec and the source device, since they are essential.</p>
<p>To begin, the developer sets up a source and a recorder object. A <a href="qaudiocapturesource.html">QAudioCaptureSource</a> object is created and used to initialize a <a href="qmediarecorder.html">QMediaRecorder</a> object. The output file name is then set for the <a href="qmediarecorder.html">QMediaRecorder</a> object.</p>
<pre class="cpp"> audiosource <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qaudiocapturesource.html">QAudioCaptureSource</a></span>;
 capture <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediarecorder.html">QMediaRecorder</a></span>(audiosource);

 capture<span class="operator">-</span><span class="operator">&gt;</span>setOutputLocation(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span>(<span class="string">&quot;test.raw&quot;</span>));</pre>
<p>A list of devices is needed so that an input can be selected in the user interface</p>
<pre class="cpp"> <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> audiosource<span class="operator">-</span><span class="operator">&gt;</span>deviceCount(); i<span class="operator">+</span><span class="operator">+</span>)
     deviceBox<span class="operator">-</span><span class="operator">&gt;</span>addItem(audiosource<span class="operator">-</span><span class="operator">&gt;</span>name(i));</pre>
<p>and a list of the supported codecs for the user to select a codec,</p>
<pre class="cpp"> <span class="type"><a href="http://qt.nokia.com/doc/4.7/qstringlist.html">QStringList</a></span> codecs <span class="operator">=</span> capture<span class="operator">-</span><span class="operator">&gt;</span>supportedAudioCodecs();
 <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> codecs<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
     codecsBox<span class="operator">-</span><span class="operator">&gt;</span>addItem(codecs<span class="operator">.</span>at(i));</pre>
<p>To set the selected device or codec just use the index of the device or codec by calling the setter in <i>audiosource</i> or <i>capture</i> as appropriate, for example,</p>
<pre class="cpp"> audiosource<span class="operator">-</span><span class="operator">&gt;</span>setSelectedDevice(i);
 <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
 capture<span class="operator">-</span><span class="operator">&gt;</span>setAudioCodec(codecIdx);</pre>
<p>Now start recording by using the <a href="qmediarecorder.html">record()</a> function from the new <a href="qmediarecorder.html">QMediaRecorder</a> object</p>
<pre class="cpp"> capture<span class="operator">-</span><span class="operator">&gt;</span>record();</pre>
<p>And stop recording by calling the matching function <a href="qmediarecorder.html#stop">stop()</a> in <a href="qmediarecorder.html">QMediaRecorder</a>.</p>
<pre class="cpp"> capture<span class="operator">-</span><span class="operator">&gt;</span>stop();</pre>
<p>How then would this audio file be played? The <a href="qmediaplayer.html">QMediaPlayer</a> class will be used as a generic player. Since the player can play both video and audio files the interface will be more complex, but for now the example will concentrate on the audio aspect.</p>
<p>Playing the file is simple: create a player object, pass in the filename, set the volume or other parameters, then play. Not forgetting that the code will need to be hooked up to the user interface.</p>
<pre class="cpp"> <span class="type"><a href="qmediaplayer.html">QMediaPlayer</a></span> <span class="operator">*</span>player <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediaplayer.html">QMediaPlayer</a></span>;
 <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
 player<span class="operator">-</span><span class="operator">&gt;</span>setMedia(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span><span class="operator">::</span>fromLocalFile(<span class="string">&quot;test.raw&quot;</span>));
 player<span class="operator">-</span><span class="operator">&gt;</span>setVolume(<span class="number">50</span>);
 player<span class="operator">-</span><span class="operator">&gt;</span>play();</pre>
<p>The filename does not have to be a local file. It could be a URL to a remote resource. Also by using the <a href="qmediaplaylist.html">QMediaPlaylist</a> class from this API we can play a list of local or remote files. The <a href="qmediaplaylist.html">QMediaPlaylist</a> class supports constructing, managing and playing playlists.</p>
<pre class="cpp"> player <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediaplayer.html">QMediaPlayer</a></span>;

 playlist <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediaplaylist.html">QMediaPlaylist</a></span>(player);
 playlist<span class="operator">-</span><span class="operator">&gt;</span>addMedia(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span>(<span class="string">&quot;http://example.com/myfile1.mp3&quot;</span>));
 playlist<span class="operator">-</span><span class="operator">&gt;</span>addMedia(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span>(<span class="string">&quot;http://example.com/myfile2.mp3&quot;</span>));
 <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
 playlist<span class="operator">-</span><span class="operator">&gt;</span>setCurrentPosition(<span class="number">1</span>);
 player<span class="operator">-</span><span class="operator">&gt;</span>play();</pre>
<p>To manipulate the playlist there are the usual management functions (which are in fact slots): previous, next, setCurrentPosition and shuffle. Playlists can be built, saved and loaded using the API.</p>
<a name="video"></a>
<h3>Video</h3>
<p>Continuing with the example discussed for an Audio recorder/player, we can use this to show how to play video files with little change to the code.</p>
<p>Moving from audio to video requires few changes in the sample code. To play a video playlist the code can be changed to include another new QtMobility Project class: <a href="qvideowidget.html">QVideoWidget</a>. This class enables control of a video resource with signals and slots for the control of brightness, contrast, hue, saturation and full screen mode.</p>
<pre class="cpp"> player <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediaplayer.html">QMediaPlayer</a></span>;

 playlist <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediaplaylist.html">QMediaPlaylist</a></span>(player);
 playlist<span class="operator">-</span><span class="operator">&gt;</span>addMedia(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span>(<span class="string">&quot;http://example.com/myclip1.mp4&quot;</span>));
 playlist<span class="operator">-</span><span class="operator">&gt;</span>addMedia(<span class="type"><a href="http://qt.nokia.com/doc/4.7/qurl.html">QUrl</a></span>(<span class="string">&quot;http://example.com/myclip2.mp4&quot;</span>));
 <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
 widget <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qvideowidget.html">QVideoWidget</a></span>(player);
 widget<span class="operator">-</span><span class="operator">&gt;</span>show();

 playlist<span class="operator">-</span><span class="operator">&gt;</span>setCurrentPosition(<span class="number">1</span>);
 player<span class="operator">-</span><span class="operator">&gt;</span>play();</pre>
<p>The <a href="player.html">Player</a> example does things a bit differently to our sample code. Instead of using a <a href="qvideowidget.html">QVideoWidget</a> object directly, the Player example has a <i>VideoWidget</i> class that inherits from <a href="qvideowidget.html">QVideoWidget</a>. This means that functions can be added to provide functions such as full screen display, either on a double click or on a particular keypress.</p>
<pre class="cpp">     videoWidget <span class="operator">=</span> <span class="keyword">new</span> VideoWidget(<span class="keyword">this</span>);
     player<span class="operator">-</span><span class="operator">&gt;</span>setVideoOutput(videoWidget);

     playlistModel <span class="operator">=</span> <span class="keyword">new</span> PlaylistModel(<span class="keyword">this</span>);
     playlistModel<span class="operator">-</span><span class="operator">&gt;</span>setPlaylist(playlist);</pre>
<a name="camera-support"></a>
<h2>Camera Support</h2>
<p>Creating still images and video.</p>
<a name="still-images"></a>
<h3>Still Images</h3>
<p>In order to capture an image we need to create a <a href="qcamera.html">QCamera</a> object and use it to initialize a <a href="qvideowidget.html">QVideoWidget</a>, so we can see where the camera is pointing - a viewfinder. The camera object is also used to initialize a new <a href="qcameraimagecapture.html">QCameraImageCapture</a> object, <i>imageCapture</i>. All that is then needed is to start the camera, lock it so that the settings are not changed while the image capture occurs, capture the image, and finally unlock the camera ready for the next photo.</p>
<pre class="cpp">         camera <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcamera.html">QCamera</a></span>;
         viewFinder <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcameraviewfinder.html">QCameraViewfinder</a></span>();
         viewFinder<span class="operator">-</span><span class="operator">&gt;</span>show();

         camera<span class="operator">-</span><span class="operator">&gt;</span>setViewfinder(viewFinder);

         imageCapture <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcameraimagecapture.html">QCameraImageCapture</a></span>(camera);

         camera<span class="operator">-</span><span class="operator">&gt;</span>setCaptureMode(<span class="type"><a href="qcamera.html">QCamera</a></span><span class="operator">::</span>CaptureStillImage);
         camera<span class="operator">-</span><span class="operator">&gt;</span>start();

         <span class="comment">//on half pressed shutter button</span>
         camera<span class="operator">-</span><span class="operator">&gt;</span>searchAndLock();

         <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>

         <span class="comment">//on shutter button pressed</span>
         imageCapture<span class="operator">-</span><span class="operator">&gt;</span>capture();

         <span class="comment">//on shutter button released</span>
         camera<span class="operator">-</span><span class="operator">&gt;</span>unlock();</pre>
<p><b>Note:</b> Alternatively, we could have used a <a href="qgraphicsvideoitem.html">QGraphicsVideoItem</a> as a viewfinder.</p>
<a name="video-clips"></a>
<h3>Video Clips</h3>
<p>Previously we saw code that allowed the capture of a still image. Recording video requires the use of a <a href="qmediarecorder.html">QMediaRecorder</a> object and a <a href="qaudiocapturesource.html">QAudioCaptureSource</a> for sound.</p>
<p>To record video we need a camera object, as before, a media recorder and a viewfinder object. The media recorder object will need to be initialized.</p>
<pre class="cpp"> camera <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qcamera.html">QCamera</a></span>;
 mediaRecorder <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qmediarecorder.html">QMediaRecorder</a></span>(camera);

 camera<span class="operator">-</span><span class="operator">&gt;</span>setCaptureMode(<span class="type"><a href="qcamera.html">QCamera</a></span><span class="operator">::</span>CaptureVideo);
 camera<span class="operator">-</span><span class="operator">&gt;</span>start();

 <span class="comment">//on shutter button pressed</span>
 mediaRecorder<span class="operator">-</span><span class="operator">&gt;</span>record();</pre>
<p>Signals from the <i>mediaRecorder</i> can be connected to slots to react to changes in the state of the recorder or error events. Recording itself starts with the <a href="qmediarecorder.html#record">record()</a> function of mediaRecorder being called, this causes the signal <a href="qmediarecorder.html#stateChanged">stateChanged()</a> to be emitted. The recording process can be changed with the <a href="qmediarecorder.html#record">record()</a>, <a href="qmediarecorder.html#pause">pause()</a>, <a href="qmediarecorder.html#stop">stop()</a> and <a href="qmediarecorder.html#muted-prop">setMuted()</a> slots in <a href="qmediarecorder.html">QMediaRecorder</a>.</p>
<p>When the camera is in video mode, as decided by the application, then as the shutter button is pressed the camera is locked as before but instead the <a href="qmediarecorder.html#record">record()</a> function in <a href="qmediarecorder.html">QMediaRecorder</a> is used.</p>
<a name="focus"></a>
<h3>Focus</h3>
<p>Focusing is managed by the classes <a href="qcamerafocus.html">QCameraFocus</a> and <a href="qcamerafocuscontrol.html">QCameraFocusControl</a>. <a href="qcamerafocus.html">QCameraFocus</a> allows the developer to set the general policy by means of the enums for the <a href="qcamerafocus.html#FocusMode-enum">FocusMode</a> and the <a href="qcamerafocus.html#FocusPointMode-enum">FocusPointMode</a>. <a href="qcamerafocus.html#FocusMode-enum">FocusMode</a> deals with settings such as <a href="qcamerafocus.html#FocusMode-enum">AutoFocus</a>, <a href="qcamerafocus.html#FocusMode-enum">ContinuousFocus</a> and <a href="qcamerafocus.html#FocusMode-enum">InfinityFocus</a>, whereas <a href="qcamerafocus.html#FocusPointMode-enum">FocusPointMode</a> deals with the various focus zones within the view. <a href="qcamerafocus.html#FocusPointMode-enum">FocusPointMode</a> has support for face recognition, center focus and a custom focus where the focus point can be specified.</p>
<a name="canceling-asynchronous-operations"></a>
<h3>Canceling Asynchronous Operations</h3>
<p>Various operations such as image capture and auto focusing occur asynchrously. These operations can often be cancelled by the start of a new operation as long as this is supported by the backend. For image capture, the operation can be cancelled by calling <a href="qcameraimagecapture.html#cancelCapture">cancelCapture()</a>. For <a href="qcamerafocus.html#FocusMode-enum">auto-focus</a>, <a href="qcameraexposure.html#ExposureMode-enum">auto-exposure</a> or <a href="qcameraimageprocessing.html#WhiteBalanceMode-enum">white balance</a> cancellation can be done by calling <a href="qcamera.html#unlock">unlock</a>(<a href="qcamera.html#LockType-enum">QCamera::LockFocus</a>).</p>
<a name="qtmultimediakit-examples"></a><a name="examples"></a>
<h2>Examples</h2>
<a name="record-a-sound-source"></a>
<h3>Record a Sound Source</h3>
<p><a href="audiorecorder.html">AudioRecorder</a> is a demonstration of the discovery of the supported devices and codecs and the use of recording functions in the <a href="qmediarecorder.html">QMediaRecorder</a> class.</p>
<a name="play-a-media-file"></a>
<h3>Play a Media File</h3>
<p>The <a href="player.html">Player</a> example is a simple multimedia player. Select a video file to play, stop, pause, show in fullscreen or manipulate various image attributes using the Color Options button.</p>
<a name="slide-show"></a>
<h3>Slide Show</h3>
<p>The <a href="slideshow.html">Slide Show</a> shows the use of the <a href="qmediaimageviewer.html">QMediaImageViewer</a> and <a href="qvideowidget.html">QVideoWidget</a> classes.</p>
<a name="camera-example"></a>
<h3>Camera Example</h3>
<p>The <a href="camera.html">Camera Example</a> shows how use the <a href="qtmultimediakit.html">QtMultimediaKit</a> API to quickly write a camera application in C++.</p>
<a name="qml-camera-example"></a>
<h3>QML Camera Example</h3>
<p>The <a href="declarative-camera.html">QML Camera Example</a> demonstrates still image capture and controls using the QML plugin. Video recording is not currently available.</p>
<a name="reference-documentation"></a>
<h2>Reference documentation</h2>
<a name="main-audio-and-video-classes"></a>
<h3>Main audio and video classes</h3>
<table class="annotated">
<tr class="odd topAlign"><td class="tblName"><p><a href="http://qt.nokia.com/doc/4.7/qaudio.html">QAudio</a></p></td><td class="tblDescr"><p>Contains enums used by the audio classes</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudiocapturesource.html">QAudioCaptureSource</a></p></td><td class="tblDescr"><p>Interface to query and select an audio input endpoint</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a></p></td><td class="tblDescr"><p>Interface to query audio devices and their functionality</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudioencodersettings.html">QAudioEncoderSettings</a></p></td><td class="tblDescr"><p>Set of audio encoder settings</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudioendpointselector.html">QAudioEndpointSelector</a></p></td><td class="tblDescr"><p>Audio endpoint selector media control</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudioformat.html">QAudioFormat</a></p></td><td class="tblDescr"><p>Stores audio parameter information</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudioinput.html">QAudioInput</a></p></td><td class="tblDescr"><p>Interface for receiving audio data from an audio input device</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudiooutput.html">QAudioOutput</a></p></td><td class="tblDescr"><p>Interface for sending audio data to an audio output device</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qgraphicsvideoitem.html">QGraphicsVideoItem</a></p></td><td class="tblDescr"><p>Graphics item which display video produced by a QMediaObject</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediabindableinterface.html">QMediaBindableInterface</a></p></td><td class="tblDescr"><p>The base class for objects extending media objects functionality</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediacontent.html">QMediaContent</a></p></td><td class="tblDescr"><p>Access to the resources relating to a media content</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediaimageviewer.html">QMediaImageViewer</a></p></td><td class="tblDescr"><p>Means of viewing image media</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediaobject.html">QMediaObject</a></p></td><td class="tblDescr"><p>Common base for multimedia objects</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediaplayer.html">QMediaPlayer</a></p></td><td class="tblDescr"><p>Allows the playing of a media source</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediaplaylist.html">QMediaPlaylist</a></p></td><td class="tblDescr"><p>List of media content to play</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediaplaylistnavigator.html">QMediaPlaylistNavigator</a></p></td><td class="tblDescr"><p>Navigation for a media playlist</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediarecorder.html">QMediaRecorder</a></p></td><td class="tblDescr"><p>Used for the recording of media content</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediaresource.html">QMediaResource</a></p></td><td class="tblDescr"><p>Description of a media resource</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediatimeinterval.html">QMediaTimeInterval</a></p></td><td class="tblDescr"><p>Represents a time interval with integer precision</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediatimerange.html">QMediaTimeRange</a></p></td><td class="tblDescr"><p>Represents a set of zero or more disjoint time intervals</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qradiotuner.html">QRadioTuner</a></p></td><td class="tblDescr"><p>Interface to the systems analog radio device</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qvideowidget.html">QVideoWidget</a></p></td><td class="tblDescr"><p>Widget which presents video produced by a media object</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qtmultimediakit.html">QtMultimediaKit</a></p></td><td class="tblDescr"><p>Contains miscellaneous identifiers used throughout the Qt Media services library</p></td></tr>
</table>
<a name="camera-classes"></a>
<h3>Camera classes</h3>
<table class="annotated">
<tr class="odd topAlign"><td class="tblName"><p><a href="qcamera.html">QCamera</a></p></td><td class="tblDescr"><p>Interface for system camera devices</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameraexposure.html">QCameraExposure</a></p></td><td class="tblDescr"><p>Interface for exposure related camera settings</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcamerafocus.html">QCameraFocus</a></p></td><td class="tblDescr"><p>Interface for focus and zoom related camera settings</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameraimagecapture.html">QCameraImageCapture</a></p></td><td class="tblDescr"><p>Used for the recording of media content</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameraimageprocessing.html">QCameraImageProcessing</a></p></td><td class="tblDescr"><p>Interface for focus and zoom related camera settings</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameraviewfinder.html">QCameraViewfinder</a></p></td><td class="tblDescr"><p>Camera viewfinder widget</p></td></tr>
</table>
<a name="advanced-usage"></a>
<h3>Advanced usage.</h3>
<p>For developers wishing to access some platform specific settings, or to port the Qt Multimedia APIs to a new platform or technology, see <a href="multimediabackend.html#multimedia-backend-development">Multimedia Backend Development</a>.</p>
<a name="qml-elements"></a>
<h3>QML Elements</h3>
<ul>
<li><a href="qml-soundeffect.html">SoundEffect: Low Latency Sound Effects</a></li>
<li><a href="qml-audio.html">Audio: Music playback</a></li>
<li><a href="qml-video.html">Video: Video playback</a></li>
</ul>
</div>
<!-- @@@multimedia.html -->
  <div class="ft">
    <span></span>
  </div>
</div> 
<div class="footer">
  <p>
     <acronym title="Copyright">&copy;</acronym> 2008-2011 Nokia Corporation and/or its
     subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation 
     in Finland and/or other countries worldwide.</p>
  <p>
     All other trademarks are property of their respective owners. <a title="Privacy Policy"
     href="http://qt.nokia.com/about/privacy-policy">Privacy Policy</a></p>
  <br />
  <p>
    Licensees holding valid Qt Commercial licenses may use this document in accordance with the    Qt Commercial License Agreement provided with the Software or, alternatively, in accordance    with the terms contained in a written agreement between you and Nokia.</p>
  <p>
    Alternatively, this document may be used under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU
    Free Documentation License version 1.3</a>
    as published by the Free Software Foundation.</p>
</div>
</body>
</html>