前節で作ったプログラムは、一応 MP3 ファイル (音声ファイル) や AVI ファイル (動画ファイル) も再生することが出来ます (MediaPlayer1 の FileName にファイル名を設定してやることによって再生できます)。しかし、AVI ファイルを再生しようとすると、画像部分は別ウィンドウが開いてしまいます。そもそも、
という外観自体、MS-Windows に附属の Windows Media Player とは違うようです。
実際、Delphi のメディアプレイヤーは、Windows Media Player とは別物であり、Delphi を作った会社である Borland が作ったものです。では、Delphi のプログラムに Windows Media Player を取り込むことはできないのでしょうか? 実は可能なのです。そしてそれを可能にするのが、ActiveX という (Microsoft 社が推進している) 技術です。結論を言えば、様々なアプリケーションソフトウェアが ActiveX コントロールとして用意されていれば、そのソフトウェアの機能を Delphi のプログラムに容易に取り込むことができます。その機構の詳細は適当な文献にゆずるとして、ここでは、ともかく Windows Media Player をどのようにして取り込むかを体験してみましょう。そうすれば、ActiveX 技術の便利さを実感できるはずです。
以下のプログラムでは、音源ファイル (chord.wav) をプログラムと同一のフォルダ内に用意してください。それでは、Windows Media Player を実際に取り込んだ、次のようなプログラムを作ってみましょう。まずは、「コンポーネント」→「ActiveX コントロールの取り込み」を選びます。
すると、ActiveX コントロールと呼ばれるものの選択画面になります。
一番上の一覧から「Windows Media Player (Version 1.0)」を選ぶと、その下の「クラス名」のところに「TMediaPlayer」という名前が現れます。Windows Media Player はこの名前で Delphi にコンポーネントとして登録されます。しかしこの場合、このままでは Delphi に最初から存在しているメディアプレイヤーと名前がかち合うので、変更しなくてはなりません。
このクラス名を「TWindowsMediaPlayer」へと変更してから「インストール」ボタンを押しましょう。
すると、次のような画面が出てきます。
すぐにコンパイルするかどうか、を聞いてくるので、ここでも「はい」を選んでください。
無事に取り込みが終わると、次のメッセージが出てきます。
これで Windows Media Player が使えるようになりました。コンポーネントパレットの「ActiveX」のページを開いてください。新しく Windows Media Player のコンポーネントが増えているはずです。
早速この Windows Media Player を先ほどのフォームに貼り付けてみましょう。
コンポーネント | Name プロパティ |
---|---|
Windows Media Player | WMPlayer1 |
そして、WMPlayer1 の FileName を chord.wav にし、AutoStart を False にし、ButtonSound のイベントハンドラを修正します。下線部には何が入りますか?
procedure TForm1.ButtonSoundClick(Sender: TObject); begin ____________.Play; end;