SewiGの日記
2006-06-22 [木] [長年日記]
■ [C#][Programming] C#でサウンド(2)
MCIを使う
Win32のwinmm.dllを呼び出すので、System.Runtime.InteropServicesを利用します。
using System.Runtime.InteropServices;
で、フィールド部分は以下のように記述します。
[DllImport("winmm.dll")] extern static int mciSendString(string command, StringBuilder ret, int length, int cb); private StringBuilder builder = new StringBuilder(32);
特に重要なのは、commandはMCIコマンド、再生や停止のコマンドを入れます。retは戻り値の文字列。lengthは文字列の長さ。
ファイルを開いて
mciSendString("open \"" + filename + "\" alias currentItem", null, 0, 0);
再生して
mciSendString("play currentItem", null, 0, 0);
停止して
mciSendString("stop currentItem", null, 0, 0);
閉じる
mciSendString("close currentItem", null, 0, 0);
MCIを使えば、Waveだけでなく音楽CDやMIDI、MP3なども再生できて便利です。MCIコマンドはほかにもいろいろあるのでぜひ調べてみてください。