【DO!BOOK・ページリンク】
2010_migaro_techreport_001   76 / 84

BOOKをみる

10秒後にBOOKのページに移動します


74 を紹介したい。 YouTube http://www.youtube.com/  次章では、最初のステップとして、 Flash を扱う機能をDelphi/400 に取り 込む方法から説明していく。 2. ActiveXコントロール の取り込み  Delphi/400 でFlash 動画を扱うため には、Flash を再生するためのインター フェース情報が必要となる。このイン ターフェース情報は「TLB(タイプラ イブラリ)」と呼ばれる。  Delphi/400 には、ActiveX コントロー ルからインターフェースを抽出して、D elphi/400 のプログラムソースを自動で 作成してくれる機能が提供されている。 この機能を利用する。 TLBの自動作成  開発画面のメニューから[コンポーネ ント| コンポーネントのインポート]を 実行すると、ウィザード画面が表示され る。【図2】  ここで「ActiveX コントロールの取 り込み」を選択し、「次へ」を実行する。  次の画面では、そのPC にインストー ルされているActiveX コントロールが 一覧で表示されるので、Flash を再生す るための「Shockwave Flash」という ActiveX コントロールを選択して「次 へ」を実行する。【図3】  次の画面では、このActiveX コント ロールの取り込み先を指定する。「パレッ トページ名」は任意の名前、「ユニット ディレクトリ名」には自動生成されるプ ログラムソースの保存先ディレクトリを 設定して、「次へ」を実行する。【図4】  最後の画面では「ユニットの作成」を 選択して「完了」を実行する。【図5】  完了すると、保存先に指定したディレ クトリに、ShockwaveFlashObjects_T LB.pas というソースファイルが自動で 作成されている。【図6】  これは、ShockwaveFlash のTLB(タ イプライブラリ)情報のプログラムソー スである。このインターフェース情報の ソースは1000 ステップ以上のプログラ ムからなるが、これらをコーディングす ることなくウィザードで自動作成できる ので、TLB の自動作成再生機能は非常 に便利な機能といえる。  もちろんこのShockwaveFlash に限 らず、ActiveX で提供される機能は同 様にDelphi/400 に取り込むことが可能 である。  なお、ソースを見ると分かる通り、ソー スの前半にはコメントで警告が書かれて いる。これは自動生成で作成されたプロ グラムソースなので、独自にソースを変 更しても、次に自動生成した時には上書 きで消えてしまうという注意書きである。 Flash再生のためのクラス  ここで自動生成されたプログラムソー スの詳細を完全に理解するのは難しいか もしれないが、中身を見てみると、ソー スの@にあるようにTShockwaveFlash というクラスが定義されている。【図7-@】  またソースのAにあるように、このク ラスには、Play やStop といったFlash 再生を操作するためのメソッドも用意さ れていることが分かる。【図7- A】  つまり、インターフェースだけでなく Flash を再生するためのクラスも自動で 作成されているので、このクラスを利用 するだけで、Flash をDelphi/400 から 操作することができるのである。  次章では、実際にこのクラスを使用し て、YouTube の動画再生プレイヤーを 作成する。 3. YouTubeプレイヤーの 実装  実際に、YouTube の動画を再生する アプリケーションを作成してみよう。 (1)はじめに新規プロジェクトを作成し、 先にActiveX コントロールから作成し た自動生成ユニットのShockwaveFlas hObjects_TLB.pas を組み込む。  これは[プロジェクト| プロジェクト に追加]から保存しているShockwaveF lashObjects_TLB.pasを指定する。【図8】 (2)これでプロジェクトに組み込まれた ので、実際にFlash を使いたいユニッ トで、interface 部のuses 節にShock waveFlashObjects_TLB を追記する。 【ソース1】 (3)ShockwaveFlashObjects_TLB で 定義されたクラスを利用するために、変 数を定義する。【ソース2】 (4)次に、アプリケーション画面を作成 する。  画面には、YouTube で再生する動画 のID を入力するTEdit(@)と、再生 用のTBitbtn(A)と停止のTBitbtn (B)、そしてFlash を再生するための TPanel(C)を配置する。【図9】 (5)Flash の再生部分にはTPanel を使 用している。  ShockwaveFlashObjects_TLB で用 意されているのはクラスであって、コン ポーネントではないからである。今回は 画面で描画する領域として、TPanel を 利用する仕組みにしている。  このTPanel にFlash のクラスの描画 を割り当てるために、画面起動時に フォームのCreate イベントで、ソース に示すような処理を行う。【ソース3】 (6)画面終了時にはこれを破棄するため に、フォームのDestroyイベントで、ソー スに示すような処理を行う。【ソース4】 (7)ここから、Flash を再生/ 停止する ボタンの処理をプログラミングすること になる。  その前に、自動生成されたTShock waveFlash のクラスで使用できる、主 な機能を記載しておく。 【TShockwaveFlashクラスで用意される 主な機能】 ・Playメソッド:Flash Movieを再生する メソッド ・Stopメソッド:Flash Movieを停止する メソッド ・Movie プロパティ:再生するFlash Movie を指定するプロパティ(※) ※ Flash のファイルをここで指定する。URL でも 指定できる。今回のYouTube 動画の場合は、URL を指定する。