CDを再生するには
WindowsAPIのmciSendStringを使えば簡単にCDを再生できます。
宣言(準備としてまず次のMciSendStringの宣言を追加します) |
Private Declare Function mciSendString Lib "WINMM" Alias "mciSendStringA" (ByVal CMD$, ByVal RET$, ByVal RETLEN&, ByVal HwndBack&) As Long |
使 用 方 法 |
MCISendString CMD$,RET$,RETLEN&,HwndBack& |
引 数 説 明 |
CMD |
String |
処理内容。 書式:コマンド名 CDAUDIO パラメータ |
RET |
Long |
実行結果をこの変数に入れる(mciGetErrorString使用時に使う) |
RETLEN |
String |
RET$の大きさ |
HwndBack |
Long(HWND) |
CDの再生終了などを通知するウィンドウのハンドル。VB5でAddressOfが使用できるようになって使用できるようになった。SetWindowLongを使用しメッセージをフックして使用する。CMDにnotifyが指定されている場合のみ有効。 |
C M D に 関 す る 追 加 説 明 |
次のコードをCMD$に代入することで次の機能を追加することができます。
コード | 機能 | 使用頻度 |
Open CDAUDIO | CDを開く | A |
Play CDAUDIO | CDを再生(再生する前にOpenを実行) | A |
Stop CDAUDIO | CDの再生をストップ | A |
Close CDAUDIO | CDを閉じる(CloseするまえにStopを実行) | A |
Seek CDAUDIO to start | CDAUDIOのまき戻し(繰り返し再生に使用) | A |
Pause CDAUDIO | CDAUDIOの再生の一時停止 | B |
Status CDAUDIO MODE | CDAUDIOの状態(繰り返し再生に使用) *RET$がplayingなら再生中、stoppedなら停止中 | B |
まだまだたくさん命令があるのですが、ここでは説明しきれません。詳しくは「Win32 APIプログラマーズリファレンス」(Visual Basicのプロフェッショナルエディション以上やVisual C++などの開発ソフトに含まれています)などを見てください。
サ ン プ ル プ ロ グ ラ ム |
まず、VisualBasicを起動してプロジェクトを新しく作成してください。そして次のコードを貼り付けてください。このサンプルコードはプログラム実行時にCDを再生し、終了時に再生を停止するものです(繰り返し再生機能つき)。なお再生にはCD−ROMドライブに音楽CDが入っている必要があります。あらかじめ用意しておいてください。
動作確認:Visual Basic 5.0(Visual Basic 4.0でも問題なく動作するはずです),Windows98
Private Declare Function mciSendString Lib "WINMM" Alias "mciSendStringA"
(ByVal CMD$, ByVal Ret$, ByVal RETLEN&, ByVal HwndBack&) As Long Private Sub Form_Load() Dim Ret As String * 255 Dim Ret2 As String * 255 mciSendString "open CDAUDIO", Ret, 255, 0 'CDAUDIOを開く mciSendString "play CDAUDIO", Ret2, 255, 0 '再生する End Sub Private Sub Form_Unload(Cancel As Integer) Dim Ret As String * 255 Dim Ret2 As String * 255 mciSendString "stop CDAUDIO", Ret, 255, 0 '再生停止 mciSendString "close CDAUDIO", Ret2, 255, 0 'CDAUDIOを閉じる End Sub |