Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 8 ae94777fff8f
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD" xml:lang="en"><title>Multimedia Framework Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This document introduces the Multimedia Framework (MMF) audio and
video client interfaces. </p>
<section id="GUID-BD6B3BA5-498F-5F8F-96CA-24B0412B63EE"><title>Purpose</title> <p>Multimedia Framework (MMF) provides several client interfaces
that encapsulate a lightweight plugin framework. These interfaces
enable you to manipulate the audio and video features of the Symbian
platform. </p> </section>
<section id="GUID-9382D1BB-F304-437C-B4ED-864950214762"><title>Architectural
Relationships</title> <p>The following diagram shows how the MMF client
interfaces interact with the Multimedia Controller Framework and the
Media Device Framework (MDF). </p> <fig id="GUID-2B9D4325-D2CA-5436-BAC4-24D6366B96C9">
<title>              Multimedia Framework - client utilities     
      </title>
<image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312843_href.png" placement="inline"/>
</fig> <p><b>MMF Controller Framework</b> </p> <p>The MMF Controller Framework
provides support for multimedia plugins within the Symbian platform.
The main type of plugin for the MMF Controller Framework is the controller
plugin. Each controller plugin provides support for one or more multimedia
formats, for example, MP3 or AVI. </p> <p> <b>Note:</b> In addition
to controller plugins, the Multimedia framework can also be extended
through format encoder/decoder, codec, and sink/source plugins. For
more information about plugins, see <xref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita">How to write Multimedia
Framework plugins</xref>. </p> <p>The player and recorder interfaces
of both audio and video and also the audio converter interface use
the controller plugins provided by the MMF Controller Framework. These
plugins provide the functionality to convert, interpret, and play
audio and video data. The resultant data from the plugins can then
be directed to one or more sinks such as a file, or directly to a
screen or lower level device driver. </p> <p>The video recorder interface
can also interact with the Onboard Camera, through a video controller
plugin, to capture video. For more information about capturing video,
see <xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Video Capture
Tutorial</xref>. </p> <p> <b> Note:</b> Tone player and audio streaming
are also provided as part of the MMF but do not interact with controller
plugins. Input and output is already in a known data format and so
does not require a plugin for encoding or decoding. As a result, they
bypass the MMF Controller Framework. </p> <p><b>Media Device Framework</b> </p> <p>Media Device Framework is the
layer below the controller plugins and above the hardware. It provides
a layer of abstraction for the audio and video hardware. The MDF consists
of DevSound, for audio input and output, and DevVideo for video. </p> <p>For more information about DevSound, see <xref href="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita">DevSound Overview</xref>. For more information about DevVideo, see <xref href="GUID-EB58901D-66BD-56BF-B0CD-5FC4F73F06F3.dita">DevVideo Overview</xref>. </p> <p><b>DRM Support</b> </p> <p>The Symbian platform provides support
for playback of Digital Rights Management (DRM) protected audio and
video content by making use of the Content Access Framework (CAF).
For more information about the CAF, see <xref href="GUID-7EE46FD9-DC9E-5C1F-9AC5-48F5212AF0CA.dita">Content Access Framework</xref>. </p> <p> <b> Note:</b> In order to access any DRM protected content
using Symbian multimedia, the client process must have the DRM capability. </p> </section>
<section id="GUID-05BC96E8-8607-45F3-B7A0-BFC022E5E345"><title>Description</title> <p>The features made available by the MMF client interfaces are: </p> <ul>
<li id="GUID-DE436989-1892-5D7E-94A8-AC37E2E90B9F"><p>Audio playing,
recording, and conversion - An interface consisting of three classes; <xref href="GUID-778D24B5-A68E-3C91-B66A-69007FBA4791.dita"><apiname>CMdaAudioPlayerUtility</apiname></xref>, <xref href="GUID-29FB1DE6-D00C-3E6B-A8AA-476FAFD7F26C.dita"><apiname>CMdaAudioRecorderUtility</apiname></xref>, and <xref href="GUID-810D29DA-8332-3E63-8A63-5B8A04EC9688.dita"><apiname>CMdaAudioConvertUtility</apiname></xref>. These classes provide
methods to create, play, and manipulate audio data stored in files,
descriptors, and URLs. </p> </li>
<li id="GUID-3A1A5D7D-376D-5633-AD78-D19D0B771A41"><p>Audio streaming
- An interface consisting of two classes; <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> and <xref href="GUID-B87C8F92-9737-3636-9800-BA267A1DCA6D.dita"><apiname>CMdaAudioOutputStream</apiname></xref>. These classes provide
methods for recording and playing audio streams such as audio from
a web address. </p> <p> <b> Note:</b> There are no explicit interfaces
for video streaming. However, the Onboard Camera can be used to achieve
video input streaming, and direct screen access can be used to achieve
video output streaming. For more information about the Onboard Camera,
see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
Camera Overview</xref>. </p> </li>
<li id="GUID-0F2716B1-3D7A-5A18-B84C-5BBB9354F1AB"><p>Tone playing
- An interface consisting of a single class <xref href="GUID-D728A286-A202-3915-9643-8FD70646F78A.dita"><apiname>CMdaAudioToneUtility</apiname></xref>. This class provides methods for playing and configuring single
and sequenced tones as well as DTMF (Dual Tone Multi-Frequency) strings. </p> </li>
<li id="GUID-279F8A4B-6D73-5F87-8424-371DE1C01A9F"><p>Video playing
and recording - An interface consisting of two classes <xref href="GUID-0F1F8AC6-B99F-3274-A785-9977197AF762.dita"><apiname>CVideoPlayerUtility</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref>. These classes provide
methods to create, play, and manipulate video clips with or without
audio tracks stored in files, descriptors, and URLs. </p> </li>
</ul> <p><b>Observer Classes</b> </p> <p>For each multimedia client interface,
there is a corresponding mixin class that must be implemented by the
client. For example, to use the audio player utility you must implement
the observer mixin class <xref href="GUID-5CD5C032-68A4-3024-85EF-B073C8284D6E.dita"><apiname>MMdaAudioPlayerCallback</apiname></xref>. </p> <p>When instantiating any of the MMF interfaces, it is necessary
to provide a reference to a class that implements the appropriate
mixin class. This allows the MMF to notify the client of events that
occur and also to notify the client of errors that may occur. </p> </section>
<section id="GUID-E23BB00B-1871-47D3-955E-D0F6A4D90DB5"><title>Multimedia
Framework Tutorials</title> <p>The following tutorials are provided: </p> <ul>
<li id="GUID-D746F0B6-9861-50BE-BA03-B60BC42E6358"><p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio
convert utility</xref>  </p> </li>
<li id="GUID-9F9651A0-383F-5171-AAF0-355327361C25"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input
Stream Tutorial</xref>  </p> </li>
<li id="GUID-7C271F01-7479-5727-88F3-F028219A579C"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita">Audio Output Stream
Tutorial</xref>  </p> </li>
<li id="GUID-816AB33E-AE82-59AC-941D-70C1BE4E8120"><p><xref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita">Video Client Tutorials</xref>  </p> </li>
</ul> </section>
<section id="GUID-DDE2EE07-2733-4FB2-AB43-6FAD239810FB"><title>See
Also</title> <p><xref href="GUID-D62A282E-9DEA-5EF3-A606-20647BC5049D.dita">Audio Client Overview</xref>  </p> <p><xref href="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita">Audio Input Stream
Overview</xref>  </p> <p><xref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita">Audio Output Stream
Overview</xref>  </p> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref>  </p> </section>
</conbody></concept>