1. はじめに
マルチメディアハードウェア環境とソフトウェア環境の継続的な改善に伴い、現在、ほとんどのコンピュータソフトウェア開発にはマルチメディアソフトウェア技術の応用が含まれています。
マルチメディア アプリケーションを設計するには、原則として、C からマルチメディア固有の開発システム (TOOLBOOK、AUTHORWARE、DIRECTOR など) までの複数レベルのツールを使用できます。しかし、マルチメディアソフトウェアは、複雑かつ多様なメディアを扱い、開発サイクルが短く、多様な専門家の参加が必要となるため、実用的かつ効率的な開発を行うためには、使いやすさと機能を備えたソフトウェアを選択する必要があります。高い開発効率。
VisualBasic は、Microsoft によって開発された Windows プログラミング ツール ソフトウェアです。その高度な設計アイデア、迅速で簡単な使用法、メディア オブジェクトを制御する柔軟で多様な手段により、マルチメディア ソフトウェア開発者の注目と支持を集め、マルチメディア アプリケーション開発にとって理想的なツールとなっています。
2. VisualBasicのマルチメディアコントロールMCI.OCX
MCI (Media Control Interface) は、Windows システムでデバイスの独立性を実現するために Microsoft が提供するメディア コントロール インターフェイス標準です。ユーザーは MCI を使用して標準のマルチメディア デバイスを簡単に制御できます。
MCI は、Windows マルチメディア拡張機能の MMSYSTEM モジュールに含まれており、イベントと MCI デバイス ドライバー間の通信を調整するために使用され、デバイスに依存しないインターフェイス属性を提供します。通常、アプリケーションは MCI デバイス タイプを指定することによって、現在使用されているデバイスの物理タイプを指定します (付録表 1 を参照)。
MCI 装置は、使用される制御方法により、複合型と単純型の 2 つのカテゴリに分類されます。単純な MCI デバイスにはデバイス要素は必要ありません。たとえば、CD オーディオおよびオーディオ プレーヤーは、すでにインストールされているハード ドライブ上で動作し、アプリケーションが動作するメディア コンテンツに関する情報を提供する必要はありません。ただし、複合 MCI デバイスの場合、アプリケーションはデバイス要素、つまりすべてのパス名を含むソース データ ファイルまたは宛先ファイルを提供する必要があります。
VisualBasic 言語の CustomControl (ユーザー コントロール コンポーネント) の概念は、今日のソフトウェア設計の開発トレンド、つまりプログラマーが VisualBasic ツールボックス (ツールボックス) にさまざまなユーザー コントロールを埋め込むことができ、各ユーザー コントロール コンポーネントには特定の属性が反映されています。プログラマは属性とメソッドを制御することで特定の機能を完成させることができます。マルチメディアを便利に制御するために、VisualBasic ツールボックスのプロフェッショナル バージョンには、マルチメディア目的のユーザー コントロール MCI.OCX が提供されています。
マルチメディア MCI コントロール MCI.OCX は、マルチメディア コントロール インターフェイス MCI デバイスのマルチメディア データ ファイルを記録および再生するために特別に使用されます。目的と効果の点で、このコントロールは一連のボタンを使用して、次のようなさまざまなデバイス コントロール コマンドを発行します。オーディオパネル、シーケンサーのMIDIコントロール、CD-ROMドライブ、オーディオCDプレーヤー、ビデオテープの再生、オーディオテープの録音と再生、その他の機器。 Visual Basic プログラミングでは、マルチメディア MCI コントロールをテーブルに追加する (ツールボックスで MCI コントロールをダブルクリックする) と、次のボタン グループが表示されます: 進む (PRev)、戻る (Next)、再生 (Play)、一時停止 (一時停止、戻る、ステップ、停止、録音、取り出し。
このアプリケーションは、MCI のこの一連のボタンを操作するのに非常に柔軟で便利です。たとえば、MCI デバイスを開いたときに、デバイス タイプのプロパティに従ってコントロールから適切なステータス ボタンをいつでも選択して、ステータスを表すことができます。デバイスの即時の物理ステータス。すべての MCI コントロールは次の方法でプログラムできます: ⑴ コントロールとそのボタンの表示と有効化、⑵ コントロールの可変または完全な再定義、⑶ 複数のデバイスをウィンドウ形式で同時に制御できます。
3. マルチメディア制御コンポーネント MCI.OCX の呼び出し
Visual Basic 3.0 Professional Edition では、マルチメディア コントロール MCI.OCX (Visual Basic 3.0 および 4.0 では、マルチメディア コントロールの拡張子は .VBX) がオプション コンポーネントとして提供されます。これを使用するには、まず FileAddFile メニュー コマンドを実行し、Windows システム ディレクトリにある MCI.OCX をツールボックス (ツールボックス) に追加する必要があります。この時点で、対応する MCI.OCX アイコンがツールボックスに表示されます。 Visual Basic バージョン 4.0 (またはバージョン 5.0) を使用している場合は、oolsCustomControls メニューを選択するか、Ctrl T を直接入力すると、ダイアログ ボックスが表示され、[AvailableControls] リスト ボックスの MicrosoftMultimediaControls エントリの横にあるチェック ボックスをオンにすると、MCI も表示されます。ツールボックスの .OCX アイコン。
ツールボックスのマルチメディア コントロール MCI.OCX アイコンをダブルクリックします。MCI.OCX コントロールを呼び出すと、フォーム フォームに灰色のメディア コントロール ボタン (9 個) の列が表示されます。
4. VisualBasic マルチメディア アプリケーションの設計手順
マルチメディア制御 MCI.OCX には、デバイスに依存しない高度な制御コマンドのセットが含まれています。このマルチメディア コントロールを使用する場合は、まず OPEN コマンドを使用して MCI デバイス (マルチメディア デバイス) を開き、対応するファイルを作成して録音や再生などの操作を実行します (ただし、対応するファイルは CDAudio、VCR、ビデオ テープには使用できません)。デバイスが正常に開くと、さまざまな操作コマンド (添付の表のボタン コマンドを参照) をデバイスに発行して、指定された作業タスクを完了できます。最後に、忘れずに Close コマンドを使用してデバイスとデータ ファイルを閉じてください。
MCI.OCX を使用すると、ほとんどのプロパティが理解しやすいため、マルチメディア アプリケーションを開発するのに非常に便利です。中でも Command プロパティは、動作中にマルチメディア デバイスにコマンドを送信します。形式は次のとおりです。
Form.Mmcontrol.Command=cmdstring$
このうち、cmdstring$ 変数は、Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound and Save の実行可能コマンド名です。コマンドが設定されるとすぐに実行され、発生したエラーは Error 属性に保存されます。
以下では、DEMO.WAV (波形ファイル) ファイルの再生を例として、VisualBasic マルチメディア アプリケーションの設計手順を説明します。
まず、マルチメディア コントロール (MCI.OCX) を含むフォーム (Form) を作成します。これにより、画面上にレコーダーの形をしたコントロール キーが表示されますが、この時点ではマルチメディア コントロール コンポーネントはすぐには使用できません (キーは灰色です)。キーの状態はプログラム コードを通じて変更する必要があります。
次に、Form_Load プロセスで、対応するプログラム コードを挿入します。次のように
サブフォーム_ロード()
'OPENコマンドを発行する前にマルチメディアデバイスのプロパティを設定してください
Form1.MMControl1.Notify=False
Form1.MMControl1.Wait=True
Form1.MMControl1.Shareable=False
Form1.MMControl1.DeviceType="WaveAudio"
Form1.MMControl1.FileName="c:windowss
mmdatademo.wav」
Form1.MMControl1.Command="開く"
EndSub
最後に、上記のプログラムを実行すると、コントロール キーが黒くなり、Play、Record などのキーを使用してデータ ファイル DEMO.WAV を操作できるようになります。たとえば、マウスで [再生] ボタンをクリックすると、.WAV サウンド効果が聞こえます (コンピュータにはサウンド デバイスが装備されている必要があります)。
上記の記述から、VisualBasic がマルチメディア コントロール MCI.OCX を使用して、習得しやすいプログラムをセットアップしていることがわかります。
5. VisualBasic マルチメディア アプリケーションの設計例
1.CD音楽を再生する
多くのマルチメディア ソフトウェア システムは、レーザー ディスク プレーヤー ソフトウェアを提供しています。マルチメディア コントロール MCI.OCX を使用すると、独自の要件を満たすシンプルなレーザー ディスク プレーヤーを簡単にプログラムできます。
表 1 は、単純な CD プレーヤーの主な制御コンポーネントの定義を示し、その後に各トリガー イベントに対応するソース プログラム コードを示します。
完全なソース プログラムのリストは次のとおりです。
`CDプレーヤーユーティリティ
「プログラムを実行する前に、レーザー ディスクを CD-ROM ドライブにロードしてください」 「LOAD」ボタンがイベントをトリガーします
PrivateSubCommand1_Click()
`CDレコードをロードします
OnErrorGoToMCI_ERROR
MMControl1.Command="開く"
OnErrorGoTo0
` 時刻形式を設定する
MMControl1.TimeFormat=vbMCIFormatTmsf
`LOADボタンを閉じて画像を表示します
Command1.Enabled=False
写真1.写真=写真3.写真
` 初期トラック数を設定
Label1.Caption="1"
ExitSub
MCI_エラー:
エラーメッセージボックスの表示
再開MCI_EXIT
MCI_EXIT:
CD のアンロード
EndSub
PrivateSubForm_Load()
MMControl1.Wait=True
MMControl1.UpdateInterval=0
`デバイスタイプの設定
MMControl1.DeviceType="CDAudio"
`デフォルトのトラック番号を0に設定します
Label1.Caption="0"
ndSub
PrivateSubForm_Unload(CancelAsInteger)
MCITest.Show
EndSub
'「出力」ボタンがイベントをトリガーします
PrivateSubMMControl1_EjectClick(CancelAsInteger)
Command1.Enabled=True
写真1.写真=写真2.写真
MMControl1.UpdateInterval=0
OnErrorGoToMCI_ERROR2
MMControl1.Command="取り出し"
MMControl1.Command="閉じる"
OnErrorGoTo0
Label1.Caption="0"
Label3.BackColor=&H404040
ExitSub
MCI_ERROR2:
エラーメッセージボックスの表示
再開次へ
EndSub
'「進む」ボタンのトリガーイベント
PrivateSubMMControl1_NextCompleted(ErrorCodeAsLong)
Label1.Caption=Str$(MMControl1.Track)
EndSub
'「一時停止」ボタンはイベントをトリガーします
PrivateSubMMControl1_PauseClick(CancelAsInteger)
MMControl1.UpdateInterval=0
Label3.BackColor=&H404040
EndSub
'「再生」ボタンでイベントがトリガーされます
PrivateSubMMControl1_PlayClick(CancelAsInteger)
MMControl1.UpdateInterval=1000
Label1.Caption=Str$(MMControl1.Track)
EndSub
'「戻る」ボタンによりイベントがトリガーされます
PrivateSubMMControl1_PrevCompleted(ErrorCodeAsLong)
Label1.Caption=Str$(MMControl1.Track)
EndSub
PrivateSubMMControl1_StatusUpdate()
Label1.Caption=Str$(MMControl1.PositionAnd&HFF)
IfMMControl1.Mode=vbMCIModePlayThen
Label3.BackColor=&H80FF&
それ以外
Label3.BackColor=&H404040
EndIf
EndSub
'「停止」ボタンによりイベントがトリガーされます
PrivateSubMMControl1_StopClick(CancelAsInteger)
MMControl1.UpdateInterval=0
Label3.BackColor=&H404040
MMControl1.To=MMControl1.Start
MMControl1.Command="シーク"
MMControl1.トラック=1
Label1.Caption="1"
EndSub
2. AVI (オーディオビデオインターフェイス) ファイルを再生します。
映画(音声や画像を含む)は、ほとんどのコンピュータ作業者にとって最も関心のあるメディア情報の 1 つであり、動画処理技術も重要なマルチメディア テクノロジの 1 つです。マルチメディア システムでは、AVI (オーディオ ビデオ インターフェイス) ファイルは、ムービー (サウンドと画像を含む) を保存するための標準形式です。これらの AVI ファイルは、通常、リアルタイム ビデオ信号をキャプチャすることによって取得されるか、スキャナまたはを使用して取得できます。アニメーションソフト。したがって、画面ウィンドウ上のオーディオとビデオの操作は、AVI ファイル (ファイルの拡張子は AVI) の処理になります。実際の作業では、AVI ファイル (ビデオ) を再生する方法は数多くありますが、Visual Basic のマルチメディア コントロールを使用する方法が最も簡単で便利です。以下では、特定の例を使用して、AVI ファイルを再生する方法を説明します。 ユーザーの現在のディレクトリに DEMO.AVI という名前のビデオ ファイルとオーディオ ファイルがあり、VisulBasic を使用してビデオを再生するには、次の手順が必要であるとします。
(1) MMControl マルチメディア コントロール、PictureBox ピクチャ ボックス コントロール、および 2 つの CommandButton コマンド ボタン コンポーネントを Visual Basic フォームに追加します。
(2) 各コントロールのプロパティを設定します。フォームの名前は Form1、MMControl マルチメディア コントロールの名前は MMControl1、PictureBox ピクチャ ボックス コントロールの名前は Picture1、2 つの CommandButton コマンド ボタン コントロールの名前はそれぞれ Play と Close です。
(3) 各トリガーイベントのソースプログラムコードを記述し、実行します。ソースコードは次のとおりです。
PrivateSubPlay_Click()
MMControl1.Filename="デモ.AVI"
MMControl1.DeviceType=="AVIVIDEO"
MMControl1.hWndDisplay=Picture1.hWnd
MMControl1.Command="OPEN"
MMControl1.To=1
MMControl1.Command="SEEK"
MMControl1.Command="PLAY"
EndSub
PrivateSubClose_Click()
MMControl1.Command="停止"
MMControl1.Command="CLOSE"
EndSub
AVI ファイルを再生する前に、まず Windows に AVI (オーディオ ビデオ) ドライバーをインストールする必要があることに注意してください。 AVI ドライバー名は MCIAVI.DRV です。これを WINDOWS SYSTEM ディレクトリにコピーし、SYSTEM.INI ファイルの [MCI] セクションに追加する必要があります。
AVIVIDEO=MCIAVI.DRV
このようにして、Windows を実行すると、Windows は AVI ドライバーを自動的にインストールします。
上記では、マルチメディア コントロール コンポーネントを使用してオーディオ ファイル (.WAV)、CD レコード、およびオーディオおよびビデオ ファイル (.AVI) を再生する操作プロセスのみを説明しています。実際、マルチメディア コントロール コンポーネントは、アニメーション ファイル (.FLI、.FLC)、MIDI ファイル、その他のメディア情報の再生にも使用できます。
6. 結論
これまでの説明から、Visual Basic が提供するマルチメディア コントロール コンポーネント MCI.OCX を使用すると、大多数のコンピュータ ユーザーがさまざまなマルチメディア アプリケーションを便利に、迅速かつ効率的に開発できることがわかります。ただし、Visual Basic マルチメディア アプリケーションを開発および設計する場合、マルチメディア コントロール コンポーネントの使用に加えて、API 関数の呼び出しなど、他の手段も使用できることを強調する必要があります (長さの観点から、これについては説明しません)。ここ)。 Visual Basic は、プロおよび非プロのマルチメディア ソフトウェア開発者にとって、まさに理想的な開発ツールであることがわかります。
付録 1 MCI デバイス タイプの定義
デバイスの種類デバイスの説明
CDAudio レーザーディスクプレーヤー機器
DATデジタルテープオーディオプレーヤー
DigitalVideo ダイナミックデジタルビデオ画像装置
アニメ動画再生装置
標準定義が与えられていないその他の MCI デバイス
オーバーレイはビデオ画像オーバーレイデバイスをシミュレートします
シーケンスMIDIシーケンサー
VCR プログラム制御ディスクレコーダー
VideoDisc はプログラム制御のレーザー ビデオ ディスク プレーヤーを使用できます
WaveAudio はデジタル波形オーディオを再生するデバイスです。
付録 2 マルチメディア制御コンポーネントの固有イベントのリスト
イベントの説明
Done は MCI コマンドのアクションを完了します (Notify が true)。
ボタンクリッククリックボタン
ButtonCompleted ボタン実行コマンドの完了
ButtonGetFocus ボタンが入力フォーカスを取得します
ButtonLostFocusボタンが入力フォーカスを失いました
StatusUpdate は、メディア コントロール オブジェクトのステータス情報を更新します->