QBasic/Sound
外观
< QBasic
QBasic 有三种发出声音的方法。
- BEEP 命令
- SOUND 命令
- PLAY 命令
以前用 PRINT CHR$(07) ,现在可以使用 BEEP 命令发出蜂鸣声。它通常用于在显示重要信息时引起注意。
'Syntax example
BEEP
PRINT CHR$(07)
这两个命令,正如在计算机上运行此程序所见,完全相同。
SOUND 命令从 PC 扬声器产生特定频率和持续时间的特定声音。一次只能播放一个声音。如果连续发出多个 SOUND 语句,则第一个语句之后的每个语句都不会执行,直到上一个语句完成。
SOUND f, d
- f - 频率,以赫兹为单位,范围从 37 到 32767
- d - 持续时间,以滴答声为单位,范围从 0 到 65535,每秒有 18.2 滴答声
SOUND 100, 18.2
播放 100 赫兹波形持续 18.2 滴答声,大约 1 秒。
QBasic 允许的最低频率为 37 赫兹,大约是第二八度的 D 音。最高频率为 32 767 赫兹,但这种音调无法听到,因为正常人耳的听力范围在 20 000 赫兹以下。
SOUND 命令的另一个功能是使用它来控制程序中的时间。
For x% = 1 TO 10 Print x% Sound 3200,18.2 NEXT
此程序将打印数字 1 到 10,每个数字之间延迟 1 秒,并播放 3200 赫兹的音频,间隔 1 秒。(由 FalcoN 编辑)
PLAY 命令用于播放音符、八度音。它一次只能播放一个音符。
PLAY 命令还可以播放复杂的存储“歌曲”。这是通过使用歌曲字符串实现的。有关字符串命令的详细信息,请参见QBasic/Appendix#PLAY。
rem Music keyboard
do
note$ = inkey$
select case ucase$(note$)
case "A"
Play "A"
case "B"
Play "B"
case "C"
Play "C"
case "D"
Play "D"
case "E"
Play "E"
case "F"
Play "F"
case "G"
Play "G"
end select
loop until ucase$(note$) = "Q"
end
此代码使用 select case 命令来检查 note$ 的值。Ucase$ 用于确保无论是否应用 Caps Lock 都没有区别。PLAY 命令用于播放不同的音符。这里没有使用 PLAY 的其他功能。