外部ファイルからMIDI形式のサウンドを鳴らすには mciSendString 関数を利用します。
この関数の第一引数にコマンド文字列を指定することで再生・停止・一時停止などの操作が行えます。(戻る)
プロトタイプ宣言
MCIERROR mciSendString( LPCTSTR lpCommand, // コマンド文字列 LPTSTR lpReturnString, // 情報を受け取るバッファ領域 UINT chReturn, // 情報を受け取るバッファ容量 HANDLE hWnd // ウィンドウ・ハンドル );
サンプル
#include <conio.h> #include <stdio.h> #include <windows.h> // break付きのキーワード #define CASE break;case #define DEFAULT break;default // 記号定数 #define ESC (0x1B) // メイン関数 int main( int argc, char *argv[] ) { char buff[ 1024 ]; int ch; if ( argc < 2 ){ printf( TEXT("USAGE: PlaySoundMidi.exe <ファイル名>\n") ); return 1; } // 開く printf( TEXT("しばらくお待ち下さい...") ); sprintf( buff, TEXT("Open \"%s\" alias Music"), argv[1] ); mciSendString( buff, NULL, 0, NULL ); printf( TEXT("\n\n") ); // 操作 printf( TEXT("[1].....再生\n") ); printf( TEXT("[2].....停止\n") ); printf( TEXT("[3].....一時停止\n") ); printf( TEXT("[4].....再開\n") ); printf( TEXT("[ESC]...終了\n") ); while ( (ch = _getch()) != ESC ){ switch ( ch ){ CASE TEXT('1'): mciSendString( TEXT("Play Music"), NULL, 0, NULL ); // 再生 CASE TEXT('2'): mciSendString( TEXT("Stop Music"), NULL, 0, NULL ); // 停止 CASE TEXT('3'): mciSendString( TEXT("Pause Music"), NULL, 0, NULL ); // 一時停止 CASE TEXT('4'): mciSendString( TEXT("Resume Music"), NULL, 0, NULL ); // 再開 DEFAULT: break; } } // 停止 mciSendString( TEXT("Stop Music"), NULL, 0, NULL ); // 閉じる mciSendString( TEXT("Close Music"), NULL, 0, NULL ); return 0; }
補足情報
- ヘッダファイルとして MMSystem.h をインクルードします。
- インポートライブラリとして WinMM.Lib をリンクします。
関連記事
- 警告音を鳴らす
- ビープ音を鳴らす
- サウンドを鳴らす(WAVEファイル)
- サウンドを鳴らす(MIDIファイル)
- CD/DVDトレイを開ける/閉める
※コメント投稿者のブログIDはブログ作成者のみに通知されます