A-4 API

A-2 のように Windows Media Player を用いた場合、ボタンを押してから実際に音が鳴り出すまでに間がありますね。これでは、9〜11章で作ったインベーダーゲームで音を鳴らそうとした場合、BGM (Back Ground Music) なら問題ないですが、インベーダーを倒したときなどの効果音には向きません。これは、Windows Media Player が多機能すぎて音の鳴り出しに時間がかかるためです (もっとも、最新の高速CPUを用いたPCの場合はほとんど気にならないとは思いますが…)。

【練習問題】

間をおかずに音を鳴らす方法として、Windows API(Application Programming Interface) というものを用いる方法があります。早速プログラミングしてみましょう。

implementation

uses
  MMSystem;

{$R *.DFM}

procedure TForm1.ButtonSoundClick(Sender: TObject);
begin
  sndPlaySound('chord.wav', SND_ASYNC);
end;

API とは、MS-Windows がプログラムに提供している原始的な関数・手続きであり、動作が速いのが特徴です。しかし、API は本当に原始的な (基本的な) 機能しか持っていないため、API だけでプログラムを作ることは大変な作業となります(画面にフォーム1つ表示するだけでも大変です)。 その大変さを肩代わりするために生まれたのが VCL (みなさんが使っているコンポーネントのこと) です。大抵のプログラムは API の代わりに VCL を使ってプログラミングできますが、「特別な処理をしたい」「どうしても実行速度を速くしたい」というような事情で API を使いたければ、市販の書籍を参考にして下さい。