Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita
changeset 13 48780e181b38
parent 8 ae94777fff8f
equal deleted inserted replaced
12:80ef3a206772 13:48780e181b38
     7     Nokia Corporation - initial contribution.
     7     Nokia Corporation - initial contribution.
     8 Contributors: 
     8 Contributors: 
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept xml:lang="en" id="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD"><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><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>
    12 <concept id="GUID-6E52C463-5489-591F-859D-68EAD5BA80FD" xml:lang="en"><title>Multimedia Framework Guide</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    13              Multimedia Framework - client utilities 
    13 <p>This document introduces the Multimedia Framework (MMF) audio and
    14           </title> <image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e306369_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><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><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-390F4725-144B-51A4-86CE-B1EC8D27BF78"><p><xref href="GUID-BA2EEEC3-86AC-5B1C-81E2-CC571EB5AB3E.dita">How to use the audio record utility</xref>  </p> </li> <li id="GUID-D26F4157-1EA7-526B-B847-07D08D92B1FA"><p><xref href="GUID-4E1F04EB-09EA-5354-8EFF-BBC95F44C9AE.dita">How to use the audio player 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><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>
    14 video client interfaces. </p>
       
    15 <section id="GUID-BD6B3BA5-498F-5F8F-96CA-24B0412B63EE"><title>Purpose</title> <p>Multimedia Framework (MMF) provides several client interfaces
       
    16 that encapsulate a lightweight plugin framework. These interfaces
       
    17 enable you to manipulate the audio and video features of the Symbian
       
    18 platform. </p> </section>
       
    19 <section id="GUID-9382D1BB-F304-437C-B4ED-864950214762"><title>Architectural
       
    20 Relationships</title> <p>The following diagram shows how the MMF client
       
    21 interfaces interact with the Multimedia Controller Framework and the
       
    22 Media Device Framework (MDF). </p> <fig id="GUID-2B9D4325-D2CA-5436-BAC4-24D6366B96C9">
       
    23 <title>              Multimedia Framework - client utilities     
       
    24       </title>
       
    25 <image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312843_href.png" placement="inline"/>
       
    26 </fig> <p><b>MMF Controller Framework</b> </p> <p>The MMF Controller Framework
       
    27 provides support for multimedia plugins within the Symbian platform.
       
    28 The main type of plugin for the MMF Controller Framework is the controller
       
    29 plugin. Each controller plugin provides support for one or more multimedia
       
    30 formats, for example, MP3 or AVI. </p> <p> <b>Note:</b> In addition
       
    31 to controller plugins, the Multimedia framework can also be extended
       
    32 through format encoder/decoder, codec, and sink/source plugins. For
       
    33 more information about plugins, see <xref href="GUID-B58DEF65-B08F-5D0B-98E7-EB8DB7082F8B.dita">How to write Multimedia
       
    34 Framework plugins</xref>. </p> <p>The player and recorder interfaces
       
    35 of both audio and video and also the audio converter interface use
       
    36 the controller plugins provided by the MMF Controller Framework. These
       
    37 plugins provide the functionality to convert, interpret, and play
       
    38 audio and video data. The resultant data from the plugins can then
       
    39 be directed to one or more sinks such as a file, or directly to a
       
    40 screen or lower level device driver. </p> <p>The video recorder interface
       
    41 can also interact with the Onboard Camera, through a video controller
       
    42 plugin, to capture video. For more information about capturing video,
       
    43 see <xref href="GUID-F690DAC8-688B-5BD7-88DF-0CB3D4ACDCFF.dita">Video Capture
       
    44 Tutorial</xref>. </p> <p> <b> Note:</b> Tone player and audio streaming
       
    45 are also provided as part of the MMF but do not interact with controller
       
    46 plugins. Input and output is already in a known data format and so
       
    47 does not require a plugin for encoding or decoding. As a result, they
       
    48 bypass the MMF Controller Framework. </p> <p><b>Media Device Framework</b> </p> <p>Media Device Framework is the
       
    49 layer below the controller plugins and above the hardware. It provides
       
    50 a layer of abstraction for the audio and video hardware. The MDF consists
       
    51 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
       
    52 for playback of Digital Rights Management (DRM) protected audio and
       
    53 video content by making use of the Content Access Framework (CAF).
       
    54 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
       
    55 using Symbian multimedia, the client process must have the DRM capability. </p> </section>
       
    56 <section id="GUID-05BC96E8-8607-45F3-B7A0-BFC022E5E345"><title>Description</title> <p>The features made available by the MMF client interfaces are: </p> <ul>
       
    57 <li id="GUID-DE436989-1892-5D7E-94A8-AC37E2E90B9F"><p>Audio playing,
       
    58 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
       
    59 methods to create, play, and manipulate audio data stored in files,
       
    60 descriptors, and URLs. </p> </li>
       
    61 <li id="GUID-3A1A5D7D-376D-5633-AD78-D19D0B771A41"><p>Audio streaming
       
    62 - 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
       
    63 methods for recording and playing audio streams such as audio from
       
    64 a web address. </p> <p> <b> Note:</b> There are no explicit interfaces
       
    65 for video streaming. However, the Onboard Camera can be used to achieve
       
    66 video input streaming, and direct screen access can be used to achieve
       
    67 video output streaming. For more information about the Onboard Camera,
       
    68 see <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
       
    69 Camera Overview</xref>. </p> </li>
       
    70 <li id="GUID-0F2716B1-3D7A-5A18-B84C-5BBB9354F1AB"><p>Tone playing
       
    71 - 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
       
    72 and sequenced tones as well as DTMF (Dual Tone Multi-Frequency) strings. </p> </li>
       
    73 <li id="GUID-279F8A4B-6D73-5F87-8424-371DE1C01A9F"><p>Video playing
       
    74 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
       
    75 methods to create, play, and manipulate video clips with or without
       
    76 audio tracks stored in files, descriptors, and URLs. </p> </li>
       
    77 </ul> <p><b>Observer Classes</b> </p> <p>For each multimedia client interface,
       
    78 there is a corresponding mixin class that must be implemented by the
       
    79 client. For example, to use the audio player utility you must implement
       
    80 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
       
    81 to provide a reference to a class that implements the appropriate
       
    82 mixin class. This allows the MMF to notify the client of events that
       
    83 occur and also to notify the client of errors that may occur. </p> </section>
       
    84 <section id="GUID-E23BB00B-1871-47D3-955E-D0F6A4D90DB5"><title>Multimedia
       
    85 Framework Tutorials</title> <p>The following tutorials are provided: </p> <ul>
       
    86 <li id="GUID-D746F0B6-9861-50BE-BA03-B60BC42E6358"><p><xref href="GUID-F46E4F89-B9ED-5A4A-B812-B605B925D0C0.dita">How to use the audio
       
    87 convert utility</xref>  </p> </li>
       
    88 <li id="GUID-9F9651A0-383F-5171-AAF0-355327361C25"><p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input
       
    89 Stream Tutorial</xref>  </p> </li>
       
    90 <li id="GUID-7C271F01-7479-5727-88F3-F028219A579C"><p><xref href="GUID-ECBA6331-2187-52C9-A5DF-20CD1EEFE781.dita">Audio Output Stream
       
    91 Tutorial</xref>  </p> </li>
       
    92 <li id="GUID-816AB33E-AE82-59AC-941D-70C1BE4E8120"><p><xref href="GUID-F370A917-6963-58F6-8876-160A1DC42040.dita">Video Client Tutorials</xref>  </p> </li>
       
    93 </ul> </section>
       
    94 <section id="GUID-DDE2EE07-2733-4FB2-AB43-6FAD239810FB"><title>See
       
    95 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
       
    96 Overview</xref>  </p> <p><xref href="GUID-68417158-D625-56BF-BDD5-BE49A7651CED.dita">Audio Output Stream
       
    97 Overview</xref>  </p> <p><xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref>  </p> </section>
       
    98 </conbody></concept>