A-2 Windows Media Player

前節で作ったプログラムは、一応 MP3 ファイル (音声ファイル) や AVI ファイル (動画ファイル) も再生することが出来ます (MediaPlayer1FileName にファイル名を設定してやることによって再生できます)。しかし、AVI ファイルを再生しようとすると、画像部分は別ウィンドウが開いてしまいます。そもそも、

という外観自体、MS-Windows に附属の Windows Media Player とは違うようです。

実際、Delphi のメディアプレイヤーは、Windows Media Player とは別物であり、Delphi を作った会社である Borland が作ったものです。では、Delphi のプログラムに Windows Media Player を取り込むことはできないのでしょうか? 実は可能なのです。そしてそれを可能にするのが、ActiveX という (Microsoft 社が推進している) 技術です。結論を言えば、様々なアプリケーションソフトウェアが ActiveX コントロールとして用意されていれば、そのソフトウェアの機能を Delphi のプログラムに容易に取り込むことができます。その機構の詳細は適当な文献にゆずるとして、ここでは、ともかく Windows Media Player をどのようにして取り込むかを体験してみましょう。そうすれば、ActiveX 技術の便利さを実感できるはずです。

【基礎課題 A-2】

以下のプログラムでは、音源ファイル (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

そして、WMPlayer1FileNamechord.wav にし、AutoStartFalse にし、ButtonSound のイベントハンドラを修正します。下線部には何が入りますか?

procedure TForm1.ButtonSoundClick(Sender: TObject);
begin
  ____________.Play;
end;