网站建设资讯

NEWS

网站建设资讯

c语言声音控制的函数,c语言发声函数

请问,c语言中的函数sound(),delay(),nosound(),d(x,y,z)分别是哪个库中的,都有什么作用

函数void sound(unsigned frequency);

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联建站专业提供成都网站设计、网站制作,网页设计,网站制作(企业站、响应式网站建设、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!

以指定频率打开PC扬声器

nosound :关闭PC扬声器

原型为: void nosound(void);

delay 用于将程序的执行暂停一段时间(毫秒)

原型为:void delay(unsigned milliseconds);

如delay(5000)表示延迟5秒

sound()函数用于让pc喇叭发声,nosound()函数用于使正在发声的pc喇叭静音。要使程序中的发声的具体方法,是调用sound()函数并延迟一定时间,然后使用nosound()函数静音,具体语句实现方法举例如下:

sound(100);

delay(100);

nosound();

它们三个都在“dos.h”里面,

至于d(x,y,z)应该是程序员自己定义的函数,我没见过。

C语言中PlaySound函数如何播放MP3文件?

可以使用PlaySound()函数播放声音文件,

该函数原型位于#include mmsystem.h中,

因此要使用PlaySound,首先需要添加对这个头文件的引用。

提示:mm就是MultiMedia的简写,多媒体

【1、函数使用说明】

函数原型为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

返回值表示是否播放成功。

参数pszSound是要播放声音的文件名,

只支持WAV等格式的文件(应该不能播放MP3格式文件);

你可以去mp3.baidu.com用“wav”为关键词可以搜到很多wav音乐,

也可以用工具将其他格式的转换为wav格式的。

参数hmod是应用程序的实例句柄,一般传递NULL就可以;

参数fdwSound是标志的组合掩码,

可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。

SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);

SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;

SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;

SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。

【2、使用举例】

PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 启

动.wav"),NULL,SND_FILENAME|SND_SYNC);

注意的问题:文件名中的反斜线要用“\\”,

因为C语言中“\”默认是转义符,

如果要表示“\”则需要使用“\\”,

对这点不明白的请回去翻一下C语言的书;

对中文字符串要使用TEXT宏。

如何用c语言编写歌曲

我们知道,音乐是音高和音长的有序组合,设计微机音乐最重要的就是如何定义音高和音长,以及如何让扬声器发出指定的音符。下面给出音符与频率的关系表。C语言提供的三个函数sound( )、nosound( )和clock( )可以很方便地解决上述的问题。sound( )函数可以用指定频率打开PC机扬声器直到用nosound( )函数来关闭它; clock( )函数正好用来控制发声时间,而且它不受PC机主频高低的影响。下面这段程序可使微机发出c调1的声音。

音符与频率关系表

音符 c d e f g a b

1 2 3 4 5 6 7

频率 262 294 330 349 392 440 494

音符 c d e f g a b

1 2 3 4 5 6 7

频率 523 587 659 698 784 880 988

音符 c d e f g a b

1 2 3 4 5 6 7

频率 1047 1175 1319 1397 2568 1760 1976

#includestdio.h

#includedos.h

void pause(int);

void sound1(int,int);

void main(void)

{

int i,freq,speed=5;

int time=4*speed;

char *qm="iddgwwwQQgfff dddfghhhggg ddgwwwqqgfff\

ddffhjqqqqq wpggjhgddgqq hhqwwqjjjggg\

ddgwwwqqqgfff ddffhjqqqqqq";/*定义歌曲*/

while (*qm++ !='\0'){

i=1;

switch(*qm){

case 'k':

time=1*speed; i=0;

break;

case 'i':

time=6*speed; i=0;

break;

case 'o':

time=10*speed; i=0;

break;

case 'p':

pause(time); i=0;

break;

case 'a':

freq=523;

break;

case 's':

freq=587;

break;

case 'd':

freq=659;

break;

case 'f':

freq=698;

break;

case 'g':

freq=784;

break;

case 'h':

freq=880;

break;

case 'j':

freq=988;

break;

case 'z':

freq=262;

break;

case 'X':

freq=294;

break;

case 'c':

freq=330;

break;

case 'v':

freq=349;

break;

case 'b':

freq=392;

break;

case 'n':

freq=440;

break;

case 'm':

freq=494;

break;

case 'q':

freq=1047;

break;

case 'w':

freq=1175;

break;

case 'e':

freq=1319;

break;

case 'r':

freq=1397;

break;

case 't':

freq=2568;

break;

case 'y':

freq=1760;

break;

case 'u':

freq=1976;

break;

default:

i=0;

break;

}

if(i)

sound1(freq,time);

}

}

void sound1(int freq,int time) /*freq为频率,time为持续时间*/

{

union{

long divisor;

unsigned char c[2];

}count;

unsigned char ch;

count.divisor=1193280/freq; /* 1193280 是系统时钟速率*/

outp(67,182);

outp(66,count.c[0]);

outp(66,count.c[1]);

ch=inp(97);

outp(97,ch|3);

pause(time);

outp(97,ch);

}

void pause(int time)

{

int t1,t2;

union REGS in,out;

in.h.ah=0X2c;

int86(0X21,in,out); /* 取当前时间*/

t1=t2=100*out.h.dh+out.h.dl; /*out.h.dh 为秒值,out.h.dl 为1/100 秒值*/

while(t2-t1time)

{

int86(0X21,in,out);

t2=100*out.h.dh+out.h.dl;

if (t2t1)t2+=6000; /* 增加一分钟*/

}

}


本文题目:c语言声音控制的函数,c语言发声函数
文章URL:http://njwzjz.com/article/dsicdds.html