c语言sound函数 c语音函数怎么用

c语言调用声音的函数?

两个声音函数sound(),nosound()和延迟函数delay()由函数库

创新互联专注于峨边彝族网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供峨边彝族营销型网站建设,峨边彝族网站制作、峨边彝族网页设计、峨边彝族网站官网定制、微信平台小程序开发服务,打造峨边彝族网络公司原创品牌,更为您提供峨边彝族网站排名全网营销落地服务。

提供。

函数名:

sound

能:

以指定频率打开PC扬声器

法:

void

sound(unsigned

frequency);

程序例:

#include

int

main(void)

{

sound(7);

delay(10000);

nosound();

return

0;

}

c语言中如何播放mp3数据帧

可以使用PlaySound()函数播放mp3声音,该函数原型位于windows.h中,

函数原型为:

BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

参数pszSound是指定了要播放声音的字符串,该参数可以是MP3文件的名字,或是MP3资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。

参数hmod是应用程序的实例句柄,当播放MP3资源时要用到该参数,否则它必须为NULL。

参数fdwSound是标志的组合,各种可选的标志及意义如下所示。若成功则函数返回TRUE,否则返回FALSE。

播放标志以及含义:

SND_APPLICATION

用应用程序指定的关联来播放声音。

SND_ALIAS

pszSound参数指定了注册表或WIN.INI中的系统事件的别名。

SND_ALIAS_ID

pszSound参数指定了预定义的声音标识符。

SND_ASYNC

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

SND_FILENAME

pszSound参数指定了MP3文件名。

SND_LOOP

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

SND_MEMORY

播放载入到内存中的声音,此时pszSound是指向声音数据的指针。

SND_NODEFAULT

不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。

SND_NOSTOP

PlaySound不打断原来的声音播出并立即返回FALSE。

SND_NOWAIT

如果驱动程序正忙则函数就不播放声音并立即返回。

SND_PURGE

停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。

SND_RESOURCE

pszSound参数是WAVE资源的标识符,这时要用到hmod参数。

SND_SYNC

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

************************************************************

例如我想播放在C:\WINDOWS\Media目录中的 Windows XP 启动.MP3文件

程序如下:

#include windows.h

#include stdlib.h

int main(int argc, char* argv[])

{

PlaySound("C:\\WINDOWS\\Media\\Windows XP 启动.MP3", NULL, SND_FILENAME | SND_ASYNC);

system("pause");

return 0;

}

*/:)))))))))))))))))))))))))))))))

C语言 关于sound();函数和delay();

函数:

voiddelay(uinti)

{

while(i)i--;

}

这样的延迟设计很不好,因为受影响的因素太多。

首先就是机器的CPU频率,快的CPU执行i--这句的机器时间短,慢的机器就很慢。

其次是当前机器的负荷情况,负荷较重时,系统给当前进程分配的CPU时间少,执行这些语句的机会就少,延迟就增加了。

影响因素还有很多在此不再列举。

做延迟程序主要有以下几种方法:

1.定时器法

用CWnd::SetTimer()函数设置定时器,当定时时间到时发送WM_TIMER消息触发CWnd::OnTimer()函数,重载它把自己的代码放进去。

SetTimer()参数为毫秒,此方法定时不高,受系统负荷影响。

2.休眠法

调用系统API函数Sleep(2000);参数单位是毫秒,2000代表2秒。

此方法主要收到当前系统负荷的影响,定时不太准确

3.时刻比较法

定义两个CTime变量,一个用于记录起始时刻,另一个放在循环体中不断刷新当前时刻,并减去起始时刻,自己计算是否到时间了。

此方法因CTime变量只能获取秒级的时刻,且收到系统负荷影响,精度也较低。

4.CPU滴答查询法

利用两个API函数QueryPerformanceFrequency()和QueryPerformanceCounter()分别获取CPU的频率和CPU滴答数,依时刻比较法自己计算时刻差值。

因为CPU滴答数是等于CPU的机器周期的,所以是Windows系统里最最精确的计时方法了。现在的CPU主频都是GHz级的,因此理论上计时精度可以到纳秒。

只要系统负荷不太重,此法可用于极其精确的延时程序。

因为Windows并不是实时操作系统,因此对于太过精确的计时,还是无能为力的。


本文名称:c语言sound函数 c语音函数怎么用
浏览路径:http://scyanting.com/article/ddijjho.html