当前位置:主页>销售管理软件> 列表

SndPlaySound播放的声音不正常 找erp软件是什么

仓库管理软件版1楼: 各位,我想在系统发生告警的时候播放指定的文件,看到大家都说用SndPlaySound这个函数.
我也尝试了一下.可是播放的声音怎么是奇怪的嗒嗒的声音,没有音乐.
我是这样调用的:
SndPlaySound(''c\a82.wav'',SND_ASYNC or SND_LOOP);
难道说这样做不行?还有别的办法吗?
希望指点!!!!!

2楼: 你确认你引用的声音文件不是发这种声音吗 如档案管理软件下载

3楼: 播放自定义的声音
  如果你要播放基本的系统声音,则要用适当的参数调用MessageBeep。如果你要用扬声器发声,就调用MessageBeep(-1);。

  要播放一个WAV声音,你可以使用对象TmediaPlayer,但如果你要快速播放,最简单的方法是调用API函数sndPlaySound(在mmsystem单元中声明)。
  
  例如:
procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound(''C:\Windows\Media\Tada.wav'',
SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
sndPlaySound(nil, 0); //停止发音
end;
如果你要经常播放一种声音,就应该考虑把文件载入内存并从内存中播放:
var
tada: string;
procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound(Pointer(tada), SND_MEMORY
Or SND_NODEFAULT Or SND_ASYNC);
end;
initialization
tada := LoadFile(''C:\Windows\Media\Tada.wav'');
finalization
tada := ''; //释放字符串占用的内存。
end.

4楼: 你可以把一个或多个wave文件嵌入可执行文件中,并从文件中播放。首先建立一个资源文件(.RES)。要做到这点,就要建立一个.RC文件,例如一个叫做sounds.rc的文件:
tada wave c:\windows\media\tada.wav
chimes wave c:\windows\media\chimes.wav

  然后用资源编译器进行编译(Delphi\Bin directory中的BRCC32.EXE),然后就得到一个名为sounds.res的文件,你可以用指令把它装入项目中。使用SND_RESOURCE标志,调用PlaySound(而不是sndPlaySound),就可以从可执行文件中播放声音。
{$R sounds.res}
procedure TForm1.Button1Click(Sender: TObject);
begin
PlaySound(''chimes'', hInstance, SND_RESOURCE or SND_SYNC);
PlaySound(''tada'', hInstance, SND_RESOURCE or SND_ASYNC);
end;

  同样,如果你要经常播放一种声音,就应该考虑把文件装入内存并从内存中播放:
{$R sounds.res}
var
tada: Pointer;
procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound(tada, SND_MEMORY
or SND_NODEFAULT or SND_ASYNC);
end;
initialization
// 此处我们使用类型转换从而避免使用另一个变量
tada := Pointer(FindResource(hInstance, ''tada'', ''wave''));
if tada <> nil then begin
tada := Pointer(LoadResource(hInstance, HRSRC(tada)));
if tada <> nil then tada := LockResource(HGLOBAL(tada));
end;
end.

5楼: SiWeiLiuLang:我确认我的文件是没有问题的,关键是我怎么听不到正常的声音??
你说了那么多,对我意义不大啊,!

6楼: SndPlaySound(''c\a82.wav'',SND_ASYNC);试下

仓库管理软件版7楼: 当然前面路径要写对啊

8楼: SndPlaySound(''c\a82.wav'',SND_ASYNC);的话,就只是嗒一下.不循环嗒了!!!!

9楼: 你先用播放器打开这个文件听下

10楼: 按道理调用没问题的

11楼: 我听过了的啊.要不你帮我做一个demo发给我???
我的邮箱:liuzuofei@126.com!
谢谢(或者:QQ:110317867)

12楼: 我也用这个函数试过了,就是循环播放的时候会发生不正常,如果只播放一次,基本不会有什么问题的. 如erp软件是什么

13楼: 还是没有解决啊! 好奇怪的问题,网上帖子多的很,多是这么说,为什么我就不能成功??
大家都没有尝试过??
还有:用下面的函数可以播放mid文件.,可是其余的为啥不行?和文件格式有关???
MCISendString(''OPEN C:\v3.mp3 TYPE SEQUENCER ALIAS NN'', '''', 0, 0);
MCISendString(''PLAY NN FROM 0'', '''', 0, 0);


MCISendString(''CLOSE ANIMATION'', '''', 0, 0);

仓库管理软件版14楼: 帮顶!

http://www.source520.com

站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载

http://www.source520.com/search/search.asp

"编程.站长"论坛搜索引擎-----为中国站长注入动力!