MCIを使用してサウンドファイルを再生

サウンド演奏 Visual Basic 6.0 Visual Basic 2008

MCI(Media Control Interface)では、個々のファイル形式の違いを意識せず、どのようなファイルでも統一的な方法で再生することができます。

また、再生や一時停止といった操作を行うためには、MCIデバイスに対してコマンドを送信する形式なので、再生や一時停止といった操作を一つの関数で行うことが出来ます。

以下に記すように、コマンド文字列として制御しますので、直感的に、非常にわかりやすくなっています。


メニュー
使用するAPI関数
フォーム構成
プログラム
 VB6ソース
 VB2008ソース
関連方式
リンクリスト

MCI API関数

関数定義

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" ( _
             ByVal lpstrCommand As String, _
             ByVal lpstrReturnString As String, _
             ByVal uReturnLength As Integer, _
             ByVal hwndCallback As Integer) As Integer      

MCIの各種コマンド

操作内容 コマンド文字列 補足説明
デバイスのオープン open [filename] (alias %s) ---
再生 play %s (notify) ---
停止 stop %s ---
デバイスのクローズ close %s ---
一時停止 pause %s ---
一時停止の再開 resume %s ---
タイムフォーマットをミリ秒にする set %s time format milliseconds millisecondsはmsと表記してもよい。
現在位置の移動 seek %s to [移動位置] 移動位置には0以上の値の他、startやendも指定で きる。
再生時間の取得 status %s length 第2引数に再生時間を表す文字列が返る。
現在位置の取得 status %s position 第2引数に現在位置を表す文字列が返る。
現在の状態を取得 status %s mode 第2引数に現在の状態を表す文字列が返る。
playing : 再生中
stopped : 停止中
paused : 一時停止中

%s の個所には、ファイル名またはエイリアス名を指定する。 括弧のキーワードはオプション

stop、close、pause、resumeには、%sの箇所に all  を指定することもできる。
この場合、MCIデバイスによって再生されている全てのファイルに対してコマンドが有効になる。
(本サンプルでは、フォームを閉じるときに"all"を指定し ている。)

本サンプルでは、
 再生 停止 一時停止 再開
および
 水平スクロールバーによる 再生位置表示/変更
 ボタンにより音量の上げ下げ/表示
を行う。

音量について
 音量は0〜1000の値が設定でき、デバイスのオープン時は 1000 となっている。
 ここでは再生時に半分(500)に設定し、音量の上下が可能なようにしている。

フォーム構成

実行イメージ

フォームを追加し、下記のコントロールを配置

コマンドボタン   7個
水平スクロールバー 1個
テキストボックス  1個
ラベル       2個
タイマー      1個
コモンダイアログ  1個

プログラム

VB6ソースサンプルコードのダウンロードVB6.0

フォーム

標準モジュール

VB2008ソースサンプルコードのダウンロードVB2008

フォーム

標準モジュール


関連方式

サウンド演奏 - MCIを使用してサウンドファイルを再生
サムネイル生成 - ファイルからサムネイル画像を作成し、JPEG形式で保存

×
PageTop