⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn技术中心 linux声音设备编程实例.mht

📁 介绍声卡编程的一些资料
💻 MHT
📖 第 1 页 / 共 5 页
字号:
C=A3=A8=B1=EA=D7=BCC=A3=A9=B5=C4fopen=A1=A2fclose=B5=C8=C0=B4=B2=D9=D7=F7=
=CE=C4=BC=FE=A3=AC=B6=F8=D3=A6=B8=C3=CA=B9=D3=C3=CF=B5=CD=B3=CE=C4=BC=FEI=
/O=B4=A6=C0=ED=BA=AF=CA=FD=A3=A8open=A1=A2read=A1=A2write=A1=A2lseek=BA=CD=
close=A3=A9=C0=B4=B4=A6=C0=ED=D5=E2=D0=A9=C9=E8=B1=B8=CE=C4=BC=FE=A1=A3io=
ctl=A3=A8=A3=A9=BB=F2=D0=ED=CA=C7Linux=CF=C2=D7=EE=C5=D3=D4=D3=B5=C4=BA=AF=
=CA=FD=A3=AC=CB=FC=BF=C9=D2=D4=BF=D8=D6=C6=B8=F7=D6=D6=CE=C4=BC=FE=B5=C4=CA=
=F4=D0=D4=A3=AC=D4=DALinux=C9=F9=D2=F4=C9=E8=B1=B8=B1=E0=B3=CC=D6=D0=A3=AC=
=D7=EE=D6=D8=D2=AA=B5=C4=BE=CD=CA=C7=CA=B9=D3=C3=B4=CB=BA=AF=CA=FD=D5=FD=C8=
=B7=C9=E8=D6=C3=B1=D8=D2=AA=B5=C4=B2=CE=CA=FD=A1=A3<BR>=A1=A1=A1=A1=CF=C2=
=C3=E6=CE=D2=C3=C7=BE=D9=C1=BD=B8=F6=CA=B5=BC=CA=B5=C4=C0=FD=D7=D3=C0=B4=CB=
=B5=C3=F7=C8=E7=BA=CE=CA=B5=CF=D6Linux=CF=C2=B5=C4=C9=F9=D2=F4=B1=E0=B3=CC=
=A1=A3=D3=C9=D3=DA=B4=CB=C0=E0=B1=E0=B3=CC=C9=E6=BC=B0=B5=BD=CF=B5=CD=B3=C9=
=E8=B1=B8=B5=C4=B6=C1=D0=B4=A3=AC=CB=F9=D2=D4=A3=AC=BA=DC=B6=E0=CA=B1=BA=F2=
=D0=E8=D2=AA=C4=E3=D3=D0root=C8=A8=CF=DE=A3=AC=C8=E7=B9=FB=C4=E3=BD=AB=CF=
=C2=C3=E6=B5=C4=C0=FD=D7=D3=B1=E0=D2=EB=BA=F3=B2=BB=C4=DC=D5=FD=C8=B7=D6=B4=
=D0=D0=A3=AC=C4=C7=C3=B4=A3=AC=CA=D7=CF=C8=C7=EB=C4=E3=BC=EC=B2=E9=CA=C7=B7=
=F1=CA=C7=D2=F2=CE=AA=C3=BB=D3=D0=B2=D9=D7=DD=C4=B3=B8=F6=C9=E8=B1=B8=B5=C4=
=C8=A8=CF=DE=A1=A3</P>
            <P>1.=20
            =
=B6=D4=C4=DA=B2=BF=D1=EF=C9=F9=C6=F7=B1=E0=B3=CC<BR>=A1=A1=A1=A1=C4=DA=B2=
=BF=D1=EF=C9=F9=C6=F7=CA=C7=BF=D8=D6=C6=CC=A8=B5=C4=D2=BB=B2=BF=B7=D6=A3=AC=
=CB=F9=D2=D4=CB=FC=B6=D4=D3=A6=B5=C4=C9=E8=B1=B8=CE=C4=BC=FE=CE=AA/dev/co=
nsole=A1=A3=B1=E4=C1=BFKIOCSOUND=D4=DA=CD=B7=CE=C4=BC=FE=20
            /usr /include /linux=20
            =
/kd.h=D6=D0=C9=F9=C3=F7=A3=ACioctl=BA=AF=CA=FD=CA=B9=D3=C3=CB=FC=BF=C9=D2=
=D4=C0=B4=BF=D8=D6=C6=D1=EF=C9=F9=C6=F7=B5=C4=B7=A2=C9=F9=A3=AC=CA=B9=D3=C3=
=B9=E6=D4=F2=CE=AA=A3=BA<BR>=A1=A1=A1=A1ioctl ( fd, KIOCSOUND,=20
            (int) =
tone);<BR>=A1=A1=A1=A1fd=CE=AA=CE=C4=BC=FE=C9=E8=B1=B8=BA=C5=A3=ACtone=20
            =
=CA=C7=D2=F4=C6=B5=D6=B5=A1=A3=B5=B1tone=CE=AA0=CA=B1=A3=AC=D6=D5=D6=B9=B7=
=A2=C9=F9=A1=A3=B1=D8=D0=EB=D2=BB=CC=E1=B5=C4=CA=C7=CB=FC=CB=F9=C0=ED=BD=E2=
=B5=C4=D2=F4=C6=B5=BA=CD=CE=D2=C3=C7=C6=BD=B3=A3=D2=D4=CE=AA=B5=C4=D2=F4=C6=
=B5=CA=C7=B2=BB=CD=AC=B5=C4=A3=AC=D3=C9=D3=DA=BC=C6=CB=E3=BB=FA=D6=F7=B0=E5=
=B6=A8=CA=B1=C6=F7=B5=C4=CA=B1=D6=D3=C6=B5=C2=CA=CE=AA1.19MHZ=A3=AC=CB=F9=
=D2=D4=D2=AA=BD=F8=D0=D0=D5=FD=C8=B7=B5=C4=B7=A2=C9=F9=A3=AC=B1=D8=D0=EB=BD=
=F8=D0=D0=C8=E7=CF=C2=B5=C4=D7=AA=BB=BB=A3=BA<BR>=A1=A1=A1=A1=D1=EF=C9=F9=
=C6=F7=D2=F4=C6=B5=D6=B5=3D1190000/=CE=D2=C3=C7=C6=DA=CD=FB=B5=C4=D2=F4=C6=
=B5=D6=B5=A1=A3<BR>=A1=A1=A1=A1=D1=EF=C9=F9=C6=F7=B7=A2=C9=F9=CA=B1=BC=E4=
=B5=C4=B3=A4=B6=CC=CE=D2=C3=C7=CD=A8=B9=FD=BA=AF=CA=FDusleep=A3=A8unsigne=
d=20
            long =
usec=A3=A9=C0=B4=BF=D8=D6=C6=A1=A3=CB=FC=CA=C7=D4=DA=CD=B7=CE=C4=BC=FE/us=
r /include=20
            =
/unistd.h=D6=D0=B6=A8=D2=E5=B5=C4=A3=AC=C8=C3=B3=CC=D0=F2=CB=AF=C3=DFusec=
=CE=A2=C3=EB=A1=A3=CF=C2=C3=E6=BC=B4=CA=C7=C8=C3=D1=EF=C9=F9=C6=F7=B0=B4=D6=
=B8=B6=A8=B5=C4=B3=A4=B6=C8=BA=CD=D2=F4=C6=B5=B7=A2=C9=F9=B5=C4=B3=CC=D0=F2=
=B5=C4=CD=EA=D5=FB=C7=E5=B5=A5=A3=BA </P>
            <P>#include &lt; fcntl.h &gt;<BR>#include &lt; stdio.h=20
            &gt;<BR>#include &lt; stdlib.h &gt;<BR>#include &lt; =
string.h=20
            &gt;<BR>#include &lt; unistd.h &gt;<BR>#include &lt; =
sys/ioctl.h=20
            &gt;<BR>#include &lt; sys/types.h &gt;<BR>#include &lt; =
linux/kd.h=20
            &gt;</P>
            <P>/* =C9=E8=B6=A8=C4=AC=C8=CF=D6=B5 */<BR>#define =
DEFAULT_FREQ 440 /* =
=C9=E8=B6=A8=D2=BB=B8=F6=BA=CF=CA=CA=B5=C4=C6=B5=C2=CA=20
            */<BR>#define DEFAULT_LENGTH 200 /* 200=20
            =
=CE=A2=C3=EB=A3=AC=B7=A2=C9=F9=B5=C4=B3=A4=B6=C8=CA=C7=D2=D4=CE=A2=C3=EB=CE=
=AA=B5=A5=CE=BB=B5=C4*/<BR>#define DEFAULT_REPS 1 /* =
=C4=AC=C8=CF=B2=BB=D6=D8=B8=B4=B7=A2=C9=F9=20
            */<BR>#define DEFAULT_DELAY 100 /* =
=CD=AC=D1=F9=D2=D4=CE=A2=C3=EB=CE=AA=B5=A5=CE=BB*/</P>
            <P>/* =
=B6=A8=D2=E5=D2=BB=B8=F6=BD=E1=B9=B9=A3=AC=B4=E6=B4=A2=CB=F9=D0=E8=B5=C4=CA=
=FD=BE=DD*/<BR>typedef struct {<BR>int freq; /*=20
            =
=CE=D2=C3=C7=C6=DA=CD=FB=CA=E4=B3=F6=B5=C4=C6=B5=C2=CA=A3=AC=B5=A5=CE=BB=CE=
=AAHz */<BR>int length; /* =
=B7=A2=C9=F9=B3=A4=B6=C8=A3=AC=D2=D4=CE=A2=C3=EB=CE=AA=B5=A5=CE=BB*/<BR>i=
nt reps; /*=20
            =D6=D8=B8=B4=B5=C4=B4=CE=CA=FD*/<BR>int delay; /* =
=C1=BD=B4=CE=B7=A2=C9=F9=BC=E4=B8=F4=A3=AC=D2=D4=CE=A2=C3=EB=CE=AA=B5=A5=CE=
=BB*/<BR>} beep_parms_t;</P>
            <P><BR>/* =
=B4=F2=D3=A1=B0=EF=D6=FA=D0=C5=CF=A2=B2=A2=CD=CB=B3=F6*/<BR>void =
usage_bail ( const char=20
            *executable_name ) {<BR>printf ( "Usage: \n \t%s [-f =
frequency] [-l=20
            length] [-r reps] [-d delay] \n ",<BR>executable_name=20
            );<BR>exit(1);<BR>}</P>
            <P>/ * =
=B7=D6=CE=F6=D4=CB=D0=D0=B2=CE=CA=FD=A3=AC=B8=F7=CF=EE=D2=E2=D2=E5=C8=E7=CF=
=C2=A3=BA<BR>* "-f =
&lt;=D2=D4HZ=CE=AA=B5=A5=CE=BB=B5=C4=C6=B5=C2=CA=D6=B5 &gt;"<BR>* "-l=20
            =
&lt;=D2=D4=BA=C1=C3=EB=CE=AA=B5=A5=CE=BB=B5=C4=B7=A2=C9=F9=CA=B1=B3=A4 =
&gt;"<BR>* "-r &lt;=D6=D8=B8=B4=B4=CE=CA=FD &gt;"<BR>* "-d=20
            =
&lt;=D2=D4=BA=C1=C3=EB=CE=AA=B5=A5=CE=BB=B5=C4=BC=E4=D0=AA=CA=B1=B3=A4 =
&gt;"<BR>*/<BR>void parse_command_line(char **argv,=20
            beep_parms_t *result) {<BR>char *arg0 =3D =
*(argv++);<BR>while ( *argv=20
            ) {<BR>if ( !strcmp( *argv,"-f" )) { /*=C6=B5=C2=CA*/<BR>int =
freq =3D atoi ( *(=20
            ++argv ) ); <BR>if ( ( freq &lt;=3D 0 ) | | ( freq &gt; =
10000 ) )=20
            {<BR>fprintf ( stderr, "Bad parameter: frequency must be =
from=20
            1..10000\n" );<BR>exit (1) ;<BR>} else {<BR>result-&gt;freq =
=3D=20
            freq;<BR>argv++; <BR>}<BR>} else if ( ! strcmp ( *argv, "-l" =
) ) {=20
            /*=CA=B1=B3=A4*/<BR>int length =3D atoi ( *(++argv ) =
);<BR>if (length &lt; 0)=20
            {<BR>fprintf(stderr, "Bad parameter: length must be &gt;=3D=20
            0\n");<BR>exit(1);<BR>} else {<BR>result-&gt;length =3D=20
            length;<BR>argv++;<BR>} <BR>} else if (!strcmp(*argv, "-r")) =
{=20
            /*=D6=D8=B8=B4=B4=CE=CA=FD*/<BR>int reps =3D =
atoi(*(++argv));<BR>if (reps &lt; 0)=20
            {<BR>fprintf(stderr, "Bad parameter: reps must be &gt;=3D=20
            0\n");<BR>exit(1);<BR>} else {<BR>result-&gt;reps =3D=20
            reps;<BR>argv++;<BR>} <BR>} else if (!strcmp(*argv, "-d")) { =
/* =D1=D3=CA=B1=20
            */<BR>int delay =3D atoi(*(++argv));<BR>if (delay &lt; 0)=20
            {<BR>fprintf(stderr, "Bad parameter: delay must be &gt;=3D=20
            0\n");<BR>exit(1);<BR>} else {<BR>result-&gt;delay =3D=20
            delay;<BR>argv++;<BR>} <BR>} else {<BR>fprintf(stderr, "Bad=20
            parameter: %s\n", =
*argv);<BR>usage_bail(arg0);<BR>}<BR>}<BR>} </P>
            <P>int main(int argc, char **argv) {<BR>int =
console_fd;<BR>int i; /*=20
            =D1=AD=BB=B7=BC=C6=CA=FD=C6=F7 */<BR>/* =
=C9=E8=B7=A2=C9=F9=B2=CE=CA=FD=CE=AA=C4=AC=C8=CF=D6=B5*/<BR>beep_parms_t =
parms =3D {DEFAULT_FREQ,=20
            DEFAULT_LENGTH, DEFAULT_REPS, <BR>DEFAULT_DELAY};<BR>/*=20
            =
=B7=D6=CE=F6=B2=CE=CA=FD=A3=AC=BF=C9=C4=DC=B5=C4=BB=B0=B8=FC=D0=C2=B7=A2=C9=
=F9=B2=CE=CA=FD*/<BR>parse_command_line(argv, &amp;parms);</P>
            <P>/* =
=B4=F2=BF=AA=BF=D8=D6=C6=CC=A8=A3=AC=CA=A7=B0=DC=D4=F2=BD=E1=CA=F8=B3=CC=D0=
=F2*/<BR>if ( ( console_fd =3D open ( "/dev/console",=20
            O_WRONLY ) ) =3D=3D -1 ) {<BR>fprintf(stderr, "Failed to =
open=20
            console.\n");<BR>perror("open");<BR>exit(1);<BR>}</P>
            <P>/* =
=D5=E6=D5=FD=BF=AA=CA=BC=C8=C3=D1=EF=C9=F9=C6=F7=B7=A2=C9=F9*/<BR>for (i =
=3D 0; i &lt; parms.reps; i++) {<BR>/*=20
            =
=CA=FD=D7=D61190000=B4=D3=BA=CE=B6=F8=C0=B4=A3=AC=B2=BB=B5=C3=B6=F8=D6=AA=
*/<BR>int magical_fairy_number =3D=20
            1190000/parms.freq;</P>
            <P>ioctl(console_fd, KIOCSOUND, magical_fairy_number); /* =
=BF=AA=CA=BC=B7=A2=C9=F9=20
            */<BR>usleep(1000*parms.length); /*=B5=C8=B4=FD... =
*/<BR>ioctl(console_fd,=20
            KIOCSOUND, 0); /* =
=CD=A3=D6=B9=B7=A2=C9=F9*/<BR>usleep(1000*parms.delay); /* =
=B5=C8=B4=FD...=20
            */<BR>} /* =D6=D8=B8=B4=B2=A5=B7=C5*/<BR>return=20
            =
EXIT_SUCCESS;<BR>}<BR>=A1=A1=A1=A1=BD=AB=C9=CF=C3=E6=B5=C4=C0=FD=D7=D3=C9=
=D4=D7=F7=C0=A9=D5=B9=A3=AC=D3=C3=BB=A7=BC=B4=BF=C9=D2=D4=C8=C3=D1=EF=C9=F9=
=C6=F7=B3=AA=B8=E8=A1=A3=D6=BB=D2=AA=D5=D2=B5=BD=CE=E5=CF=DF=C6=D7=BB=F2=BC=
=F2=C6=D7=B5=C4=D2=F4=BD=D7=A1=A2=D2=F4=B3=A4=A1=A2=BD=DA=C5=C4=BA=CD=C6=B5=
=C2=CA=A1=A2=B7=A2=C9=F9=CA=B1=B3=A4=A1=A2=BC=E4=B8=F4=B5=C4=B6=D4=D3=A6=B9=
=D8=CF=B5=BE=CD=BF=C9=D2=D4=C1=CB=A1=A3=CE=D2=CF=D6=D4=DA=BB=B9=BC=C7=B5=C3=
=D2=D4=C7=B0=D4=DADOS=CF=C2=B1=E0=D0=B4=B3=F6=A1=B6=CA=C0=C9=CF=D6=BB=D3=D0=
=C2=E8=C2=E8=BA=C3=A1=B7=CA=B1=B5=C4=D0=CB=B7=DC=A1=A3=D7=EE=BA=F3=A3=AC=CB=
=B5=D2=BB=D0=A9=CC=E1=CD=E2=BB=B0=A3=AC=D5=E2=C6=E4=CA=B5=CA=C7=D2=BB=B8=F6=
=BA=DC=BC=F2=B5=A5=B5=C4=B3=CC=D0=F2=A3=AC=B5=AB=CA=C7=CE=D2=C3=C7=C8=B4=D3=
=C3=C1=CB=BA=DC=B3=A4=B5=C4=C6=AA=B7=F9=A3=AC=CF=A3=CD=FB=B6=C1=D5=DF=B4=D3=
=D2=D4=C9=CF=B5=C4=B4=FA=C2=EB=C0=EF=C4=DC=CC=E5=BB=E1=B5=BD=D0=B4=BA=C3=B5=
=C4=B3=CC=D0=F2=B5=C4=D2=BB=D0=A9=B7=BD=B7=A8=A3=AC=BB=F2=D0=ED=D7=EE=D6=D8=
=D2=AA=B5=C4=CA=C7=CC=ED=BC=D3=D7=A2=CA=CD=B0=C9=A1=A3=D2=BB=B8=F6=B3=CC=D0=
=F2=B5=C4=D7=A2=CA=CD=D3=C0=D4=B6=B2=BB=BB=E1=CF=D3=B6=E0=A3=AC=BC=B4=B1=E3=
=C4=E3=D0=B4=B5=C4=CA=B1=BA=F2=BE=F5=B5=C3=CB=FC=B8=F9=B1=BE=CA=C7=B6=E0=D3=
=E0=A3=AC=B5=AB=CF=E0=D0=C5=CE=D2=A3=AC=CF=E0=D0=C5=D4=F8=D5=E2=D1=F9=B8=E6=
=CB=DF=CE=D2=C3=C7=B5=C4=D0=ED=B6=E0=D3=C5=D0=E3=B5=C4=B3=CC=D0=F2=D4=B1=A3=
=BA=D1=F8=B3=C9=D0=B4=BA=DC=B6=E0=D7=A2=CA=CD=B5=C4=CF=B0=B9=DF=A1=A3</P>=

            <P>2.=20
            =
=B6=D4=C9=F9=BF=A8=B1=E0=B3=CC<BR>=A1=A1=A1=A1=D6=BB=D2=AA=CE=D2=C3=C7=B2=
=BB=CA=C7=BD=F8=D0=D0=D6=EE=C8=E7=C7=FD=B6=AF=C9=E8=B1=B8=BF=AA=B7=A2=D6=AE=
=C0=E0=B5=C4=B9=A4=D7=F7=A3=AC=B6=D4=C9=F9=BF=A8=B5=C4=B1=E0=B3=CC=BA=CD=C9=
=CF=C3=E6=B6=D4=D1=EF=C9=F9=C6=F7=B5=C4=B1=E0=B3=CC=C3=BB=D3=D0=CA=B2=C3=B4=
=B1=BE=D6=CA=B5=C4=C7=F8=B1=F0=A1=A3=B5=B1=C4=E3=CA=D4=CD=BC=C0=B4=B1=E0=D0=
=B4=D6=EE=C8=E7CD=B2=A5=B7=C5=C6=F7=A1=A2MP3=B2=A5=B7=C5=C6=F7=D6=AE=C0=E0=
=B5=C4=B8=B4=D4=D3=B5=C4=B3=CC=D0=F2=CA=B1=A3=AC=C4=E3=B5=C4=B9=A4=D7=F7=CA=
=C7=C8=A1=BB=F1=B5=C3=D3=EBCDROM=BF=D8=D6=C6=A1=A2MP3=BD=E2=C2=EB=D6=AE=C0=
=E0=B5=C4=D0=C5=CF=A2=A3=AC=B6=F8=B6=C1=D0=B4=CF=B5=CD=B3=C9=E8=B1=B8=B5=C4=
=D5=E2=D2=BB=B2=BD=D4=DALinux=CF=C2=B3=AC=BB=A5=CF=EB=CF=F3=B5=C4=BC=F2=B5=
=A5=A1=A3=C0=FD=C8=E7=A3=ACLinux=CF=C2=D7=EE=BC=F2=B5=A5=B5=C4=B2=A5=B7=C5=
wav=B5=C4=B3=CC=D0=F2=D6=BB=D3=D0=D2=BB=D0=D0=A3=BAcp=20
            $&lt; =
&gt;/dev/audio=A1=A3=BD=AB=CB=FC=D0=B4=B3=C9=D2=BB=B8=F6shell=CE=C4=BC=FE=
=A3=AC=CD=AC=D1=F9=CA=C7=D2=BB=B8=F6=B3=CC=D0=F2=A3=A8shell=20
            =
=B1=E0=B3=CC=A3=A9=A1=A3<BR>=A1=A1=A1=A1=CE=D2=C3=C7=CA=D7=CF=C8=D0=E8=D2=
=AA=D6=AA=B5=C0=D2=BB=CC=A8=BB=FA=C6=F7=C9=CF=CA=C7=B7=F1=D3=D0=C9=F9=BF=A8=
=A3=AC=D2=BB=B8=F6=BC=EC=B2=E9=B5=C4=B0=EC=B7=A8=CA=C7=BC=EC=B2=E9=CE=C4=BC=
=FE/dev/sndstat=CE=C4=BC=FE=A3=AC=C8=E7=B9=FB=B4=F2=BF=AA=B4=CB=CE=C4=BC=FE=
=B4=ED=CE=F3=A3=AC=B2=A2=C7=D2=B4=ED=CE=F3=BA=C5=CA=C7ENODEV=A3=AC=D4=F2=CB=
=B5=C3=F7=B4=CB=BB=FA=C6=F7=C3=BB=D3=D0=B0=B2=D7=B0=C9=F9=BF=A8=A1=A3=B3=FD=
=B4=CB=D6=AE=CD=E2=A3=AC=CA=D4=D7=C5=C8=A5=B4=F2=BF=AA=CE=C4=BC=FE/dev/ds=
p=D2=B2=BF=C9=D2=D4=C0=B4=BC=EC=B2=E9=CA=C7=B7=F1=B0=B2=D7=B0=C1=CB=C9=F9=
=BF=A8=A1=A3<BR>=A1=A1=A1=A1Linux=CF=C2=BA=CD=C9=F9=BF=A8=CF=E0=B9=D8=B5=C4=
=CE=C4=BC=FE=D3=D0=D0=ED=B6=E0=A3=AC=C8=E7=B2=C9=BC=AF=CA=FD=D7=D6=D1=F9=B1=
=BE=B5=C4/dev/dsp=CE=C4=BC=FE=A3=AC=D5=EB=B6=D4=BB=EC=D2=F4=C6=F7=B5=C4/d=
ev/mixer=CE=C4=BC=FE=D2=D4=BC=B0=D3=C3=D3=DA=D2=F4=D0=F2=C6=F7=B5=C4/dev/=
sequencer=B5=C8=A1=A3=CE=C4=BC=FE/dev/audio=CA=C7=D2=BB=B8=F6=BB=F9=D3=DA=
=BC=E6=C8=DD=D0=D4=BF=BC=C2=C7=B5=C4=C9=F9=D2=F4=C9=E8=B1=B8=CE=C4=BC=FE=A3=
=AC=CB=FC=CA=B5=BC=CA=CA=C7=B5=BD=C9=CF=CA=F6=CA=FD=D7=D6=C9=E8=B1=B8=B5=C4=
=D2=BB=B8=F6=D3=B3=C9=E4=A3=AC=CB=FC=D7=EE=B4=F3=B5=C4=CC=D8=C9=AB=BB=F2=D0=
=ED=CA=C7=B6=D4=D6=EE=C8=E7wav=D5=E2=C0=E0=CE=C4=BC=FE=B8=F1=CA=BD=B5=C4=D6=
=B1=BD=D3=D6=A7=B3=D6=A1=A3=CE=D2=C3=C7=CF=C2=C3=E6=B5=C4=C0=FD=D7=D3=BC=B4=
=CA=B9=D3=C3=C1=CB=B4=CB=C9=E8=B1=B8=CE=C4=BC=FE=CA=B5=CF=D6=C1=CB=D2=BB=B8=
=F6=BC=F2=B5=A5=B5=C4=C2=BC=D2=F4=BB=FA=A3=BA=CE=D2=C3=C7=B4=D3=C9=F9=BF=A8=
=C9=E8=B1=B8=A3=A8=B5=B1=C8=BB=D2=AA=D3=C3=C2=F3=BF=CB=B7=E7=A3=A9=B6=C1=C8=
=A1=D2=F4=C6=B5=CA=FD=BE=DD=A3=AC=B2=A2=BD=AB=CB=FC=B4=E6=B7=C5=B5=BD=CE=C4=
=BC=FEtest.wav=D6=D0=C8=A5=A1=A3=D2=AA=B2=A5=B7=C5=D5=E2=B8=F6wav=CE=C4=BC=
=FE=A3=AC=D6=BB=D2=AA=C8=E7=C7=B0=C3=E6=CB=F9=CA=F6=A3=AC=CA=B9=D3=C3=C3=FC=
=C1=EEcp=20
            test.wav=20
            =
&gt;/dev/audio=BC=B4=BF=C9=A3=AC=B5=B1=C8=BB=C4=E3=D2=B2=BF=C9=D2=D4=D3=C3=
Linux=CF=C2=C6=E4=CB=FB=B5=C4=B6=E0=C3=BD=CC=E5=C8=ED=BC=FE=C0=B4=B2=A5=B7=
=C5=D5=E2=B8=F6=CE=C4=BC=FE=A1=A3<BR>=CF=C2=C3=E6=BC=B4=CA=C7=CD=EA=D5=FB=
=B5=C4=B3=CC=D0=F2=C7=E5=B5=A5=A3=BA</P>
            <P>/* =
=B4=CB=CE=C4=BC=FE=D6=D0=B6=A8=D2=E5=C1=CB=CF=C2=C3=E6=CB=F9=D3=D0=D0=CE=C8=
=E7SND_=B5=C4=B1=E4=C1=BF*/<BR>#include <BR>#include <BR>#include=20
            <BR>#include <BR>#include </P>
            <P>main()<BR>{<BR>/* =
id=A3=BA=B6=C1=C8=A1=D2=F4=C6=B5=CE=C4=BC=FE=C3=E8=CA=F6=B7=FB=A3=BBfd=A3=
=BA=D0=B4=C8=EB=B5=C4=CE=C4=BC=FE=C3=E8=CA=F6=B7=FB=A1=A3i=A3=ACj=CE=AA=C1=
=D9=CA=B1=B1=E4=C1=BF*/<BR>int=20
            id,fd,i,j;<BR>/* =
=B4=E6=B4=A2=D2=F4=C6=B5=CA=FD=BE=DD=B5=C4=BB=BA=B3=E5=C7=F8=A3=AC=BF=C9=D2=
=D4=B5=F7=D5=FB*/<BR>char testbuf[4096];<BR>/*=20
            =
=B4=F2=BF=AA=C9=F9=BF=A8=C9=E8=B1=B8=A3=AC=CA=A7=B0=DC=D4=F2=CD=CB=B3=F6*=
/<BR>if ( ( id =3D open ( "/dev/audio", O_RDWR ) ) &lt; 0=20
            ) {<BR>fprintf (stderr, " Can't open sound =
device!\n");<BR>exit ( -1=20
            ) ;<BR>}<BR>/* =
=B4=F2=BF=AA=CA=E4=B3=F6=CE=C4=BC=FE=A3=AC=CA=A7=B0=DC=D4=F2=CD=CB=B3=F6*=
/<BR>if ( ( fd =3D open=20
            ("test.wav",O_RDWR))&lt;0){<BR>fprintf ( stderr, " Can't =
open output=20
            file!\n");<BR>exit (-1 );<BR>}<BR>/* =
=C9=E8=D6=C3=CA=CA=B5=B1=B5=C4=B2=CE=CA=FD=A3=AC=CA=B9=B5=C3=C9=F9=D2=F4=C9=
=E8=B1=B8=B9=A4=D7=F7=D5=FD=B3=A3*/<BR>/*=20
            =
=CF=EA=CF=B8=C7=E9=BF=F6=C7=EB=B2=CE=BF=BCLinux=B9=D8=D3=DA=C9=F9=BF=A8=B1=
=E0=B3=CC=B5=C4=CE=C4=B5=B5*/<BR>i=3D0;<BR>ioctl =
(id,SNDCTL_DSP_RESET,(char=20
            *)&amp;i) ;<BR>ioctl (id,SNDCTL_DSP_SYNC,(char=20
            *)&amp;i);<BR>i=3D1;<BR>ioctl (id,SNDCTL_DSP_NONBLOCK,(char=20
            *)&amp;i);<BR>i=3D8000;<BR>ioctl (id,SNDCTL_DSP_SPEED,(char=20
            *)&amp;i);<BR>i=3D1;<BR>ioctl (id,SNDCTL_DSP_CHANNELS,(char=20
            *)&amp;i);<BR>i=3D8;<BR>ioctl (id,SNDCTL_DSP_SETFMT,(char=20
            *)&amp;i);<BR>i=3D3;<BR>ioctl =
(id,SNDCTL_DSP_SETTRIGGER,(char=20
            *)&amp;i);<BR>i=3D3;<BR>ioctl =
(id,SNDCTL_DSP_SETFRAGMENT,(char=20
            *)&amp;i);<BR>i=3D1;<BR>ioctl (id,SNDCTL_DSP_PROFILE,(char=20
            *)&amp;i);<BR>/* =
=B6=C1=C8=A1=D2=BB=B6=A8=CA=FD=C1=BF=B5=C4=D2=F4=C6=B5=CA=FD=BE=DD=A3=AC=B2=
=A2=BD=AB=D6=AE=D0=B4=B5=BD=CA=E4=B3=F6=CE=C4=BC=FE=D6=D0=C8=A5*/<BR>for =
( j=3D0;=20
            =
j&lt;10;){<BR>i=3Dread(id,testbuf,4096);<BR>if(i&gt;0){<BR>write(fd,fileb=
uf,i);<BR>j++;<BR>}<BR>}<BR>/*=20
            =
=B9=D8=B1=D5=CA=E4=C8=EB=A1=A2=CA=E4=B3=F6=CE=C4=BC=FE*/<BR>close(fd);<BR=
>close(id);<BR>}</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -