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

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

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

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

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

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ウインドウの有効化/無効化 | トップ | サウンドを鳴らす(MIDIファイル) »
最新の画像もっと見る

コメントを投稿

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