mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-23 20:58:55 -05:00
57 lines
2.4 KiB
HTML
57 lines
2.4 KiB
HTML
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||
|
<meta name="GENERATOR" content="Mozilla/4.73 [en]C-gatewaynet (Win98; U) [Netscape]">
|
||
|
<meta name="Author" content="Phil Burk">
|
||
|
<meta name="Description" content="Tutorial for PortAudio, a cross platform, open-source, audio I/O library.It provides a very simple API for recording and/or playing sound using a simple callback function.">
|
||
|
<meta name="KeyWords" content="audio, tutorial, library, portable, open-source, DirectSound,sound, music, JSyn, synthesis,">
|
||
|
<title>PortAudio Tutorial</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<center><table COLS=1 WIDTH="100%" BGCOLOR="#FADA7A" >
|
||
|
<tr>
|
||
|
<td>
|
||
|
<center>
|
||
|
<h1>
|
||
|
PortAudio Tutorial</h1></center>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table></center>
|
||
|
|
||
|
<h2>
|
||
|
Starting and Stopping a Stream</h2>
|
||
|
|
||
|
<blockquote>The stream will not start running until you call Pa_StartStream().
|
||
|
Then it will start calling your callback function to perform the audio
|
||
|
processing.
|
||
|
<blockquote>
|
||
|
<pre>err = Pa_StartStream( stream );
|
||
|
if( err != paNoError ) goto error;</pre>
|
||
|
</blockquote>
|
||
|
At this point, audio is being generated. You can communicate to your callback
|
||
|
routine through the data structure you passed in on the open call, or through
|
||
|
global variables, or using other interprocess communication techniques.
|
||
|
Please be aware that your callback function may be called at interrupt
|
||
|
time when your foreground process is least expecting it. So avoid sharing
|
||
|
complex data structures that are easily corrupted like double linked lists.
|
||
|
<p>In many of the tests we simply sleep for a few seconds so we can hear
|
||
|
the sound. This is easy to do with Pa_Sleep() which will sleep for some
|
||
|
number of milliseconds. Do not rely on this function for accurate scheduling.
|
||
|
it is mostly for writing examples.
|
||
|
<blockquote>
|
||
|
<pre>/* Sleep for several seconds. */
|
||
|
Pa_Sleep(NUM_SECONDS*1000);</pre>
|
||
|
</blockquote>
|
||
|
When you are through, you can stop the stream from the foreground.
|
||
|
<blockquote>
|
||
|
<pre>err = Pa_StopStream( stream );
|
||
|
if( err != paNoError ) goto error;</pre>
|
||
|
</blockquote>
|
||
|
You can also stop the stream by returning 1 from your custom callback function.</blockquote>
|
||
|
<font size=+2><a href="http://www.portaudio.com/">home</a> | <a href="pa_tutorial.html">contents</a>
|
||
|
| <a href="pa_tut_open.html">previous</a> | <a href="pa_tut_term.html">next</a></font>
|
||
|
</body>
|
||
|
</html>
|