アップリケーションにサウンドリソースを埋め込んで使いたい。
|
リソースファイルには、*.WAVファイルを埋め込むことが出来ます。しかし、これは手作業で行わなければなりません。
たとえば、TEST.WAV というファイルがあるとします。
・このファイルをproject1.dprと同じディレクトリに起きます。
・メニューから[ファイル|新規作成−テキスト]を選びます。
・このテキストに、
MYSOUND WAVE TEST.WAV
と1行を書き込み、PROJTEST.rc(適当でよい)という*.rcファイルとしてセーブします。
※ TEST.WAVが同じディレクトリでないときはフルパスで指定
※ リソースは、原則、大文字です。
・binディレクトリにあるbrcc32.exeで、*.resファイルを作成します。
brcc32.exe PROJTEST.rc
※ コマンドラインEXE であることに注意
・project1.dprを開き作成したリソースファイルを書き込みます
・・省略・・・
{$R *.RES} // デフォルトである
{$R projtest.res} // ←ここを書き加える
begin
Application.Initialize;
・・省略・・・
以上で、プロジェクトの再構築を行えば、EXEの中にTEST.WAVのデータが埋め込まれます。
Demosディレクトリの中にあるリソースエクスプローラの見本をコンパイルして、このプロジェクトのEXEファイルを読み込むと、WAVEリソースが出来ていることがわかります。
以下は、簡単な使用方法です。
// 音を鳴らす
procedure TForm1.Button1Click(Sender: TObject);
begin
PlaySound('MYSOUND',HInstance, SND_RESOURCE or SND_ASYNC);
end;
// 停止させる
procedure TForm1.Button2Click(Sender: TObject);
begin
PlaySound(nil, 0, SND_RESOURCE);
end;
上記の場合、SND_RESOURCE は必ず必要です。
また、SND_ASYNCをSND_SYNCにすると終わるまで制御が戻りません。 |
|