Symbian3/SDK/Source/GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?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 xml:lang="en" id="GUID-715E0EA4-8B3D-5DDF-B773-922E367B114F"><title>Audio Input Streaming Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document provides an overview of Audio Input Streaming. </p> <section><title>Purpose</title> <p>Audio Input Streaming is the interface to streaming sampled audio data from the low level audio controller part of the Multimedia Framework (MMF). </p> <p><b>Audio Input Streaming Library Details</b> </p> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-8B265CE9-32F7-50B2-A441-9297ACAA50E7"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <b>mediaclientaudioinputstream.dll</b>  </p> </entry> <entry><p> <b>mediaclientaudioinputstream.lib</b>  </p> </entry> <entry><p>These files are used for implementing Audio Input Streaming. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>How the Audio Input Streaming classes interact with other components of MMF is shown below: </p> <fig id="GUID-F8971636-AAF3-5DE3-A8D6-40310AB3FE0F"><title>
             Audio input streaming overview 
          </title> <image href="GUID-BE3F31A9-959C-5854-8515-052774D8358E_d0e289045_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>Streamed audio data is sent and received incrementally. This means: </p> <ul><li id="GUID-4FEF36CA-0938-5897-B799-6C7E4BFB5B94"><p>sound clips sent to the low level audio controller (audio play) can be sent as they arrive rather than waiting until the entire clip is received. </p> <p>The user of the API should maintain the data fragments in a queue before sending them to the server. If the user attempts to send data faster than the server can receive it, the excess data fragments are maintained in another client side queue (invisible to the user), whose elements are references to the buffers passed to it. The server notifies the client using a callback each time it has received a data fragment. This indicates to the client that the data fragment can be deleted. </p> </li> <li id="GUID-EA299CC6-F891-5F49-885B-BC42A564FCFE"><p>sound clips that are being captured by the low level audio controller (audio record) can be read incrementally without having to wait until audio capture is complete. </p> <p>The low level audio controller maintains the received buffers where it can place the audio data that is being captured. The client uses a read function to read the received data into destination descriptors. </p> </li> </ul> <p>The client is also notified (for audio play and record) when the stream is opened and available for use (opening takes place asynchronously), and when the stream is closed. </p> <p>This API can only be used to stream audio data, with the data being stored or sourced from a descriptor. Client applications must ensure that the data is in 16 bit PCM format as this is the only format supported. The API does not support mixing. A priority mechanism is used to control access to the sound device by more than one client. </p> </section> <section><title>Key Audio Input Streaming Classes</title> <p>The functionality provided by Audio Input Streaming is contained within the <xref href="GUID-92BDB3AF-D9DB-35E2-AC6F-6435D3D1A4D8.dita"><apiname>CMdaAudioInputStream</apiname></xref> class. </p> </section> <section><title>Using Audio Input Streaming</title> <p>Clients can use Audio Input Streaming to: </p> <ul><li id="GUID-9C700094-649A-5F8F-9147-75B9A4C5F079"><p>Open, set audio and mobile equipment properties, read from and close the audio stream. </p> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-1C499E7D-8099-5BE4-AE46-6143388E6ACB.dita">Audio Input Streaming Tutorial</xref>  </p> </section> </conbody></concept>