调用声音文件的VB函数 多媒体软件中,声音是重要组成部分。而VB中却没有直接调用声音文件的语句。于是笔者在VB5.0中定义了一个调用声音文件函数。调用此函数时只需带上不同的参数,就能执行不同的声音文件并发出各种声音。利用此函数在编制多媒体软件时可以带来很大方便。 定义调用声音文件函数时用到了Windows播放声音的API函数。现先将此API函数作简单介绍sndPlaySound(参数1,参数2)其中:参数1描述要播放的声音文件的位置和文件名;参数2的取值能决定播放声音的模式。参数2的主要取值介绍如下: 取&H0时:为同步播放模式; 取&H1时:为异步播放模式; 取&H2时:当声音文件未找到就停止播音返回; 取&H8时:为循环播放模式。 当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。 定义调用声音文件函数的具体步骤如下: ①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件; ②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”; ③在模块的“通用”中输入下面代码,进行调用API函数的声明; Declare Function sndPlaySound Lib "winmm.dll" Alias “sndPlaySoundA" (ByV al lpszSoundName As String, ByVal uFlags As Long) As Long Dim fil As String ④在模块中输入以下代码,定义调用声音文件函数。 Public Function sound(n As Integer) As Integer Dim x As Integer Select Case n Case 1 fil = "c:\sound\beep3.wav" x = sndPlaySound(0, 0) x = sndPlaySound(fil, &H1 Or &H2) sound = x Case 2 fil = "c:\sound\hit8.wav" x = sndPlaySound(0, 0) x = sndPlaySound(fil, &H1 Or &H2) sound = x Case 3 fil = "c:\sound\net7.wav" x = sndPlaySound(0, 0) x = sndPlaySound(fil, &H1 Or &H2) sound = x Case 4 fil = "c:\sound\out12.wav" x = sndPlaySound(0, 0) x = sndPlaySound(fil, &H1 Or &H2) sound = x Case 5 fil = "c:\sound\spin5.wav" x = sndPlaySound(0, 0) x = sndPlaySound(fil, &H1 Or &H2) sound = x Case Else sound = 0 End Select End Function 新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序: ①如图在form窗口设置6个命令控件; ②在这些命令控件的Click事件中入分别输入以下代码。 Private Sub Command1_Click() l = sound(1) End Sub Private Sub Command2_Click() l = sound(2) End Sub Private Sub Command3_Click() l = sound(3) End Sub 年Private Sub Command4_Click() l = sound(4) End Sub Private Sub Command5_C lick() End Sub Private Sub Command6_Click() End End Sub 运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音。 (江苏苏州市景范中学 赵旭 215005) 选择字段浏览程序 虽然FoxPro系统给我们提供USE、BROW命令来打开数据库进行浏览,如果是浏览指定的数据库文件和全部字段还比较方便,当频繁打开不同目录的数据库文件或只想浏览部分字段时,使用上述过程就显得力不从心了。下面这个小程序可以把当前硬盘和软盘所有目录下的数据库文件列出,当您选择到一个数据库文件后,又将库中所有字段列出,您可以有选择地进行浏览,从而使数据库选择字段浏览相当简便。 SET TALK ON SET COLO TO W/N,R/B,R && 使选择字段时, 屏幕显示所选的字段 SET COLOR OF SCHEME 2 TO BG/W,N/W,N/W,B/W,B/BG,W+/R,GR+/W,N+/N,B/W,W/N,+ DO WHIL .T. DEFINE POPUP database FROM 2,10 to 15,30 PROMPT FILES LIKE *.dbf colo sche 2; MESSAGE “移动↑↓光标键,选择数据库文件目录,其它键退出” ON SELECTION POPUP database DO Database DEFINE POPUP fieldlist FROM 2,26 TO 15,46 PROMPT STRUCTURE MARGIN; MESSAGE “按<ENTER>选择字段,然后按<ESC>进行浏览” ON SELECTION POPUP fieldlist DO Fieldlist CLEAR @ 1,11 SAY “ 选择一个数据库:” COLO B/G ACTIVATE POPUP database @ 1,11 SAY “ ” COLO N/N IF NOT EMPTY(DBF()) && 如果选择了一个数据库 @ 1,29 SAY “ 选择数据库字段:”COLO R/G mfieldlist =“ ” && 字段选择变量 ACTIVATE POPUP fieldlist&&激活菜单显示数据库字段 IF NOT EMPTY(mfieldlist) mfieldlist = “FIELDS ” + LEFT(mfieldlist, LEN(mfieldlist)-1) *在字段选择变量中增加 “FILEDS”, 并除去尾部逗号. ENDIF BROWSE &mfieldlist COLO R+/BG+ * 浏览所选择的数据库和所选择的字段 ENDIF RELEASE POPUP database, fieldlist CLEA XX=" " @ 23,24 SAY "还继续浏览数据库吗(y/Y)?" GET XX COLO B+/W READ IF UPPER(XX)="Y".OR.XX="Y" LOOP ELSE EXIT ENDIF ENDDO SET TALK OFF CLOSE DATABASE QUIT RETURN * Process database file list selection PROCEDURE Database USE PROMPT() && 打开所选择的数据库 DEACTIVATE POPUP database RETURN PROCEDURE Fieldlist IF NOT PROMPT() $ mfieldlist mfieldlist = mfieldlist + PROMPT() + "," * 在字段选择变量中增加字段和逗号 ENDIF RETURN (河北省邯郸市峰峰矿务局 左巍 056207)
定义调用声音文件函数时用到了Windows播放声音的API函数。现先将此API函数作简单介绍sndPlaySound(参数1,参数2)其中:参数1描述要播放的声音文件的位置和文件名;参数2的取值能决定播放声音的模式。参数2的主要取值介绍如下:
取&H0时:为同步播放模式;
取&H1时:为异步播放模式;
取&H2时:当声音文件未找到就停止播音返回;
取&H8时:为循环播放模式。
当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。
定义调用声音文件函数的具体步骤如下:
①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件;
②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”;
③在模块的“通用”中输入下面代码,进行调用API函数的声明;
Declare Function sndPlaySound Lib "winmm.dll" Alias
“sndPlaySoundA" (ByV al lpszSoundName As String, ByVal uFlags As Long) As Long
Dim fil As String
④在模块中输入以下代码,定义调用声音文件函数。
Public Function sound(n As Integer) As Integer
Dim x As Integer
Select Case n
Case 1
fil = "c:\sound\beep3.wav"
x = sndPlaySound(0, 0)
x = sndPlaySound(fil, &H1 Or &H2)
sound = x
Case 2
fil = "c:\sound\hit8.wav"
x = sndPlaySound(0, 0)
x = sndPlaySound(fil, &H1 Or &H2)
sound = x
Case 3
fil = "c:\sound\net7.wav"
x = sndPlaySound(0, 0)
x = sndPlaySound(fil, &H1 Or &H2)
sound = x
Case 4
fil = "c:\sound\out12.wav"
x = sndPlaySound(0, 0)
x = sndPlaySound(fil, &H1 Or &H2)
sound = x
Case 5
fil = "c:\sound\spin5.wav"
x = sndPlaySound(0, 0)
x = sndPlaySound(fil, &H1 Or &H2)
sound = x
Case Else
sound = 0
End Select
End Function
新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序:
①如图在form窗口设置6个命令控件;
②在这些命令控件的Click事件中入分别输入以下代码。
Private Sub Command1_Click()
l = sound(1)
End Sub
Private Sub Command2_Click()
l = sound(2)
End Sub
Private Sub Command3_Click()
l = sound(3)
End Sub
年Private Sub Command4_Click()
l = sound(4)
End Sub
Private Sub Command5_C lick()
End Sub
Private Sub Command6_Click()
End
End Sub
运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音。
(江苏苏州市景范中学 赵旭 215005)
选择字段浏览程序
虽然FoxPro系统给我们提供USE、BROW命令来打开数据库进行浏览,如果是浏览指定的数据库文件和全部字段还比较方便,当频繁打开不同目录的数据库文件或只想浏览部分字段时,使用上述过程就显得力不从心了。下面这个小程序可以把当前硬盘和软盘所有目录下的数据库文件列出,当您选择到一个数据库文件后,又将库中所有字段列出,您可以有选择地进行浏览,从而使数据库选择字段浏览相当简便。
SET TALK ON
SET COLO TO W/N,R/B,R && 使选择字段时, 屏幕显示所选的字段
SET COLOR OF SCHEME 2 TO BG/W,N/W,N/W,B/W,B/BG,W+/R,GR+/W,N+/N,B/W,W/N,+
DO WHIL .T.
DEFINE POPUP database FROM 2,10 to 15,30 PROMPT FILES LIKE *.dbf colo sche 2;
MESSAGE “移动↑↓光标键,选择数据库文件目录,其它键退出”
ON SELECTION POPUP database DO Database
DEFINE POPUP fieldlist FROM 2,26 TO 15,46 PROMPT STRUCTURE MARGIN;
MESSAGE “按<ENTER>选择字段,然后按<ESC>进行浏览”
ON SELECTION POPUP fieldlist DO Fieldlist
CLEAR
@ 1,11 SAY “ 选择一个数据库:” COLO B/G
ACTIVATE POPUP database
@ 1,11 SAY “ ” COLO N/N
IF NOT EMPTY(DBF()) && 如果选择了一个数据库
@ 1,29 SAY “ 选择数据库字段:”COLO R/G
mfieldlist =“ ” && 字段选择变量
ACTIVATE POPUP fieldlist&&激活菜单显示数据库字段
IF NOT EMPTY(mfieldlist)
mfieldlist = “FIELDS ” + LEFT(mfieldlist, LEN(mfieldlist)-1)
*在字段选择变量中增加 “FILEDS”, 并除去尾部逗号.
ENDIF
BROWSE &mfieldlist COLO R+/BG+
* 浏览所选择的数据库和所选择的字段
ENDIF
RELEASE POPUP database, fieldlist
CLEA
XX=" "
@ 23,24 SAY "还继续浏览数据库吗(y/Y)?" GET XX COLO B+/W
READ
IF UPPER(XX)="Y".OR.XX="Y"
LOOP
ELSE
EXIT
ENDIF
ENDDO
SET TALK OFF
CLOSE DATABASE
QUIT
RETURN
* Process database file list selection
PROCEDURE Database
USE PROMPT()
&& 打开所选择的数据库
DEACTIVATE POPUP database
RETURN
PROCEDURE Fieldlist
IF NOT PROMPT() $ mfieldlist
mfieldlist = mfieldlist + PROMPT() + ","
* 在字段选择变量中增加字段和逗号
ENDIF
RETURN
(河北省邯郸市峰峰矿务局 左巍 056207)
※ 多媒体计算机系列丛书 多媒体计算机声卡技术及应用
发表评论 添加个人书签
作者:周敬利 余胜生 等 索书号:TP334/Z81 出版日期:1998年12月第1版 页数:307
是:book://ssreader/e0?url=http://202.120.96.59/48/diskjsj/js259/21/!00001.pdg&1&1&1&1&pages=317&bookname=多媒体技术丛书之三%20Microsoft%20Windows%20多媒体程序员参考手册&ssnum=10274979
多媒体技术丛书之三 Microsoft Windows 多媒体程序员参考手册
阅读 下载 发表评论 添加个人书签
作者:吴新瞻 陈卉 陈正康 SS号:10274979 索书号:TP311.56/WXE/1 出版日期:1993年6月第1版 页数:317