symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/guideaudioexamples.html
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 <HTML
       
     2 ><HEAD
       
     3 ><TITLE
       
     4 >Audio Examples</TITLE
       
     5 ><META
       
     6 NAME="GENERATOR"
       
     7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
       
     8 "><LINK
       
     9 REL="HOME"
       
    10 TITLE="SDL Library Documentation"
       
    11 HREF="index.html"><LINK
       
    12 REL="UP"
       
    13 TITLE="Examples"
       
    14 HREF="guideexamples.html"><LINK
       
    15 REL="PREVIOUS"
       
    16 TITLE="Event Examples"
       
    17 HREF="guideeventexamples.html"><LINK
       
    18 REL="NEXT"
       
    19 TITLE="CDROM Examples"
       
    20 HREF="guidecdromexamples.html"></HEAD
       
    21 ><BODY
       
    22 CLASS="SECT1"
       
    23 BGCOLOR="#FFF8DC"
       
    24 TEXT="#000000"
       
    25 LINK="#0000ee"
       
    26 VLINK="#551a8b"
       
    27 ALINK="#ff0000"
       
    28 ><DIV
       
    29 CLASS="NAVHEADER"
       
    30 ><TABLE
       
    31 SUMMARY="Header navigation table"
       
    32 WIDTH="100%"
       
    33 BORDER="0"
       
    34 CELLPADDING="0"
       
    35 CELLSPACING="0"
       
    36 ><TR
       
    37 ><TH
       
    38 COLSPAN="3"
       
    39 ALIGN="center"
       
    40 >SDL Library Documentation</TH
       
    41 ></TR
       
    42 ><TR
       
    43 ><TD
       
    44 WIDTH="10%"
       
    45 ALIGN="left"
       
    46 VALIGN="bottom"
       
    47 ><A
       
    48 HREF="guideeventexamples.html"
       
    49 ACCESSKEY="P"
       
    50 >Prev</A
       
    51 ></TD
       
    52 ><TD
       
    53 WIDTH="80%"
       
    54 ALIGN="center"
       
    55 VALIGN="bottom"
       
    56 >Chapter 4. Examples</TD
       
    57 ><TD
       
    58 WIDTH="10%"
       
    59 ALIGN="right"
       
    60 VALIGN="bottom"
       
    61 ><A
       
    62 HREF="guidecdromexamples.html"
       
    63 ACCESSKEY="N"
       
    64 >Next</A
       
    65 ></TD
       
    66 ></TR
       
    67 ></TABLE
       
    68 ><HR
       
    69 ALIGN="LEFT"
       
    70 WIDTH="100%"></DIV
       
    71 ><DIV
       
    72 CLASS="SECT1"
       
    73 ><H1
       
    74 CLASS="SECT1"
       
    75 ><A
       
    76 NAME="GUIDEAUDIOEXAMPLES"
       
    77 ></A
       
    78 >Audio Examples</H1
       
    79 ><P
       
    80 ></P
       
    81 ><DIV
       
    82 CLASS="SECT2"
       
    83 ><H2
       
    84 CLASS="SECT2"
       
    85 ><A
       
    86 NAME="AEN382"
       
    87 ></A
       
    88 >Opening the audio device</H2
       
    89 ><P
       
    90 ><PRE
       
    91 CLASS="PROGRAMLISTING"
       
    92 >    SDL_AudioSpec wanted;
       
    93     extern void fill_audio(void *udata, Uint8 *stream, int len);
       
    94 
       
    95     /* Set the audio format */
       
    96     wanted.freq = 22050;
       
    97     wanted.format = AUDIO_S16;
       
    98     wanted.channels = 2;    /* 1 = mono, 2 = stereo */
       
    99     wanted.samples = 1024;  /* Good low-latency value for callback */
       
   100     wanted.callback = fill_audio;
       
   101     wanted.userdata = NULL;
       
   102 
       
   103     /* Open the audio device, forcing the desired format */
       
   104     if ( SDL_OpenAudio(&#38;wanted, NULL) &#60; 0 ) {
       
   105         fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
       
   106         return(-1);
       
   107     }
       
   108     return(0);</PRE
       
   109 ></P
       
   110 ></DIV
       
   111 ><DIV
       
   112 CLASS="SECT2"
       
   113 ><H2
       
   114 CLASS="SECT2"
       
   115 ><A
       
   116 NAME="AEN386"
       
   117 ></A
       
   118 >Playing audio</H2
       
   119 ><P
       
   120 ><PRE
       
   121 CLASS="PROGRAMLISTING"
       
   122 >    static Uint8 *audio_chunk;
       
   123     static Uint32 audio_len;
       
   124     static Uint8 *audio_pos;
       
   125 
       
   126     /* The audio function callback takes the following parameters:
       
   127        stream:  A pointer to the audio buffer to be filled
       
   128        len:     The length (in bytes) of the audio buffer
       
   129     */
       
   130     void fill_audio(void *udata, Uint8 *stream, int len)
       
   131     {
       
   132         /* Only play if we have data left */
       
   133         if ( audio_len == 0 )
       
   134             return;
       
   135 
       
   136         /* Mix as much data as possible */
       
   137         len = ( len &#62; audio_len ? audio_len : len );
       
   138         SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
       
   139         audio_pos += len;
       
   140         audio_len -= len;
       
   141     }
       
   142 
       
   143     /* Load the audio data ... */
       
   144 
       
   145     ;;;;;
       
   146 
       
   147     audio_pos = audio_chunk;
       
   148 
       
   149     /* Let the callback function play the audio chunk */
       
   150     SDL_PauseAudio(0);
       
   151 
       
   152     /* Do some processing */
       
   153 
       
   154     ;;;;;
       
   155 
       
   156     /* Wait for sound to complete */
       
   157     while ( audio_len &#62; 0 ) {
       
   158         SDL_Delay(100);         /* Sleep 1/10 second */
       
   159     }
       
   160     SDL_CloseAudio();</PRE
       
   161 ></P
       
   162 ></DIV
       
   163 ></DIV
       
   164 ><DIV
       
   165 CLASS="NAVFOOTER"
       
   166 ><HR
       
   167 ALIGN="LEFT"
       
   168 WIDTH="100%"><TABLE
       
   169 SUMMARY="Footer navigation table"
       
   170 WIDTH="100%"
       
   171 BORDER="0"
       
   172 CELLPADDING="0"
       
   173 CELLSPACING="0"
       
   174 ><TR
       
   175 ><TD
       
   176 WIDTH="33%"
       
   177 ALIGN="left"
       
   178 VALIGN="top"
       
   179 ><A
       
   180 HREF="guideeventexamples.html"
       
   181 ACCESSKEY="P"
       
   182 >Prev</A
       
   183 ></TD
       
   184 ><TD
       
   185 WIDTH="34%"
       
   186 ALIGN="center"
       
   187 VALIGN="top"
       
   188 ><A
       
   189 HREF="index.html"
       
   190 ACCESSKEY="H"
       
   191 >Home</A
       
   192 ></TD
       
   193 ><TD
       
   194 WIDTH="33%"
       
   195 ALIGN="right"
       
   196 VALIGN="top"
       
   197 ><A
       
   198 HREF="guidecdromexamples.html"
       
   199 ACCESSKEY="N"
       
   200 >Next</A
       
   201 ></TD
       
   202 ></TR
       
   203 ><TR
       
   204 ><TD
       
   205 WIDTH="33%"
       
   206 ALIGN="left"
       
   207 VALIGN="top"
       
   208 >Event Examples</TD
       
   209 ><TD
       
   210 WIDTH="34%"
       
   211 ALIGN="center"
       
   212 VALIGN="top"
       
   213 ><A
       
   214 HREF="guideexamples.html"
       
   215 ACCESSKEY="U"
       
   216 >Up</A
       
   217 ></TD
       
   218 ><TD
       
   219 WIDTH="33%"
       
   220 ALIGN="right"
       
   221 VALIGN="top"
       
   222 >CDROM Examples</TD
       
   223 ></TR
       
   224 ></TABLE
       
   225 ></DIV
       
   226 ></BODY
       
   227 ></HTML
       
   228 >