mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -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>
							 |