Symbian3/SDK/Source/GUID-6E52C463-5489-591F-859D-68EAD5BA80FD.dita
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 13 48780e181b38
equal deleted inserted replaced
7:51a74ef9ed63 8:ae94777fff8f
     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 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>
    13              Multimedia Framework - client utilities 
    13              Multimedia Framework - client utilities 
    14           </title> <image href="GUID-FCC51FFE-DC34-5168-9564-8F30273DE1BD_d0e312384_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           </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>