プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

サウンドを鳴らす(MIDIファイル)

2007年09月12日 18時00分00秒 | マルチメディア関連

外部ファイルから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 をリンクします。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« サウンドを鳴らす(WAVEファイル) | トップ | 物理メモリ容量の取得(1) »
最新の画像もっと見る

コメントを投稿

マルチメディア関連」カテゴリの最新記事