外部ファイルからWAVE形式のサウンドを鳴らすには PlaySound 関数を使います。
また、第一引数にメモリ・オブジェクトなどを指定してもWAVE形式のサウンドを再生できます。(戻る)
プロトタイプ宣言
BOOL PlaySound( LPCSTR szSound, // 再生ファイル HMODULE hMod, // インスタンス・ハンドル DWORD dwSound // 再生スイッチ );
サンプル
#include <conio.h> #include <stdio.h> #include <windows.h> // break付きのキーワード #define CASE break;case #define DEFAULT break;default // 記号定数 #define ESC (0x1B) // メイン関数 int main( void ) { int ch; printf( TEXT("[1].....chimes.wav\n") ); printf( TEXT("[2].....chord.wav\n") ); printf( TEXT("[3].....ding.wav\n") ); printf( TEXT("[4].....notify.wav\n") ); printf( TEXT("[5].....recycle.wav\n") ); printf( TEXT("[6].....ringin.wav\n") ); printf( TEXT("[7].....ringout.wav\n") ); printf( TEXT("[8].....start.wav\n") ); printf( TEXT("[9].....tada.wav\n") ); printf( TEXT("[ESC]...終了\n") ); while ( (ch = _getch()) != ESC ){ switch ( ch ){ CASE TEXT('1'): PlaySound( TEXT("C:\\windows\\Media\\chimes.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('2'): PlaySound( TEXT("C:\\windows\\Media\\chord.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('3'): PlaySound( TEXT("C:\\windows\\Media\\ding.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('4'): PlaySound( TEXT("C:\\windows\\Media\\notify.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('5'): PlaySound( TEXT("C:\\windows\\Media\\recycle.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('6'): PlaySound( TEXT("C:\\windows\\Media\\ringin.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('7'): PlaySound( TEXT("C:\\windows\\Media\\ringout.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('8'): PlaySound( TEXT("C:\\windows\\Media\\start.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); CASE TEXT('9'): PlaySound( TEXT("C:\\windows\\Media\\tada.wav"), NULL, (SND_ASYNC|SND_FILENAME) ); DEFAULT: break; } } return 0; }
- 上記のサンプルは Windows XP の環境を想定しています。
- 他の環境では WAVE ファイルが存在しないか、フォルダ名の違いから再生されないことあります。
補足情報
- ヘッダファイルとして MMSystem.h をインクルードします。
- インポートライブラリとして WinMM.Lib をリンクします。
関連記事
- 警告音を鳴らす
- ビープ音を鳴らす
- サウンドを鳴らす(WAVEファイル)
- サウンドを鳴らす(MIDIファイル)
- CD/DVDトレイを開ける/閉める
※コメント投稿者のブログIDはブログ作成者のみに通知されます