程序的音频输出

有时候,软件需要播放一些音乐,这时候该怎么办呢?使用复杂的winAPI?不,还有更简单的方法:

uses crt;
const
 n=...; 
 t=...;  
 a:array[1..t]of longint=(...); 
 b:array[1..t]of real=(...); 
 sounds:array[-6..14]of longint=(...); 
var
 i:longint;
begin
 for i:=1 to t do
  begin
   sound(sounds[a[i]]);
   delay(trunc(b*n));
   nosound;
  end;
end.

那么这段代码是什么意思呢?如下:

uses crt;
const
 n=...;   //每一拍的音长
 t=...;   //共有几个音符
 a:array[1..t]of longint=(...);   //音高(do就是1,下点就是减掉7,上点就是加上7)
 b:array[1..t]of real=(...);     //音长(以简谱中没有下划线没有附点的为一拍)
 sounds:array[-6..14]of longint=(...);  //音高hz
var
 i:longint;
begin
 for i:=1 to t do
  begin
   sound(sounds[a[i]]);   //播放
   delay(trunc(b*n));     //等待
   nosound;               //关闭上一次声音
  end;
end.

大家可以试试一些较短的乐曲来演奏,虽然效果不是很好,但是较为简单。

posted @ 2017-09-14 20:36  zhuchengyang  阅读(358)  评论(2编辑  收藏  举报