15. 音楽を流す。


DXライブラリではたった1行の処理で音楽が流せます。

音楽形式にはmidiファイルやwav,ogg,mp3と色々ありますが、「mid」と「wav,ogg,mp3」は違う扱いをします。

midiファイルを演奏する時はPlayMusic関数を使用します。

wav,ogg,mp3ファイルを演奏する時はPlaySound関数を使用します。両者とも、引数は同じで

PlayMusic ( "音楽ファイルの場所" , 再生タイプ ) ;
PlaySound ( "音楽ファイルの場所" , 再生タイプ ) ;

となっています。再生タイプは

DX_PLAYTYPE_NORMAL  : ノーマル再生
DX_PLAYTYPE_BACK  : バックグラウンド再生
DX_PLAYTYPE_LOOP  : ループ再生

の3種類が指定できます。

ノーマル再生とは、再生している間処理を返さない、再生している間は処理が止まった状態にするタイプです。

バックグラウンド再生とは、先ほどとは違い、再生を始めると同時に処理を返すタイプです(普通こちらを使います。)

ループ再生とは再生を止めるまで永遠にループ再生するタイプです。

再生を止めるには

PlayMusic関数に対しては StopMusic(); で

PlaySound関数に対しては StopSound(); で止める事が出来ます。引数はvoid(無し)です。

ではそれぞれの再生方法についてサンプルプログラムで見ていきましょう。

前者がmidi用、後者がwav,ogg,mp3用再生プログラムです。

↓コピー&コンパイル用サンプルプログラム↓


#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ;          // ウィンドウモード
        if( DxLib_Init() == -1 ) return -1;     // 初期化
 
 
        PlayMusic( "test.mid" , DX_PLAYTYPE_BACK ) ; // test.midのバックグラウンド演奏
 
 
        WaitKey() ;
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}

実行結果

音声なので省略


#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ;          // ウィンドウモード
        if( DxLib_Init() == -1 ) return -1;     // 初期化
 
 
        PlaySound( "test.wav" , DX_PLAYTYPE_BACK ) ; //test.wavのバックグラウンド演奏
 
 
 
        WaitKey() ;             // キーが押されるまで待つ
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}

実行結果

音声なので省略

→掲示板で質問する



- Remical Soft -