ActionScript で Flash 専用プレーヤ API を使用する

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
モジュール
Player API
エディション
すべて

ここでは、Flash でプレーヤを公開し、Video Cloud Flash 専用プレーヤ API を使用してインタラクションを行うための手順を説明します。

ActionScript 3 の経験がある方が、Flash をプレーヤと統合する場合には、Video Cloud Flash 専用プレーヤ API を使用して行うことができます。

この文書では、Video Cloud プレーヤの Flash バージョンのためのソリューションについて説明します。Video Cloud は、プレーヤのカスタマイズおよび動的ソリューションの開発用に 2 つの API をサポートしています。その 1 つが、Video Cloud Flash Player 用ソリューションのための Flash 専用プレーヤ API であり、もう 1 つがスマート プレーヤ用ソリューションのためのスマート プレーヤ API です。スマート プレーヤは、Flash がサポートされている場合には Video Cloud プレーヤの Flash バージョンとして機能し、されていない場合には HTML バージョンとして機能します。Flash Player のみをコーディングするためのメソッドおよびイベントについては、「Flash 専用プレーヤ API リファレンス」を参照してください。スマート プレーヤ用の動的ソリューション作成の詳細については、「スマート プレーヤ API を使用する」を参照してください。

Flash 専用プレーヤ フレームワークは、全面的に ActionScript 3 を使用して構築されているので、ActionScript API を使用するには、Flash CS3 以降が必要です。このトピックでは、クラスと ActionScript 3 の一般的な使用方法を理解していることを前提としています。詳しくは、Adobe ActionScript 3 のドキュメントを確認してください。また、「Flash 専用プレーヤ API の概要」および 「Flash 専用プレーヤ API の基礎」を参照してください。

このトピックでは、以下の手順によって、Flash 専用プレーヤ API を使用して、Flash でプレーヤを公開しプレーヤと対話する方法を学習します。

パブリッシング コードを取得する

まず初めに、Brightcove Studio Publishing モジュールからプレーヤのパブリッシング コードを取得します。その方法については、「Video Cloud プレーヤを公開する」「パブリッシング コードの取得」セクションを参照してください。Flash に埋め込むために、ActionScript パブリッシング コードを取得します。パブリッシング コードは、外部 ActionScript ファイルに置き、プロジェクトにインポートする必要がある ActionScript クラスを定義します。外部 ActionScript ファイル名が、BrightcovePlayer.as のように Video Cloud プレーヤ クラス名と一致するようにしてください。クラスがインポートされると、新しい Video Cloud プレーヤを作成し、イベント リスナを追加することができます。ここで、常に待機する必要がある最初のイベントである templateLoaded イベントのリスナを追加しました。

import flash.display.*;
import flash.events.Event;
import BrightcovePlayer;
 
public class Main extends Sprite{
    
 var mPlayer:Object;
 var mContent:Object;
 var mExp:Object;
    
 var bcp:BrightcovePlayer = new BrightcovePlayer();
    
 public function Main(){
      
 bcp.addEventListener ("templateLoaded", templateLoaded);
 addChild (bcp);
 }
}

プレーヤ コンポーネントへの参照を取得する

templateLoaded イベントは、プレーヤがロードされたことのみを通知します。先へ進むには、使用したいコンポーネントへの参照を取得し、templateReady イベントのリスナを設定する必要があります。次のイベントは、プレーヤの初期化が完了し、フル インタラクションが可能になったときに発生します。

var mPlayer:Object;
var mContent:Object;
var mExp:Object;
 
public function templateLoaded (evt:Event):void{
 trace("template loaded");
 mPlayer = bcp.getModule("videoPlayer");
 mContent = bcp.getModule("content");
 mExp = bcp.getModule("experience");
 mExp.addEventListener ("templateReady", templateReady);
}
 
public function templateReady (evt:Event):void{
 mExp.addEventListener ("contentLoad", contentLoad); 
 mContent.addEventListener ("videoLoad", videoLoad); 
}

コンポーネント モジュールにアクセスするには、定数値または文字列名を使用します。この例では、VideoPlayer モジュールへの参照を取得します。このモジュールの API を使用すると、動画をロードして再生し、再生のステータスとイベントを取得できます。ActionScript と共に使用する文字列の一覧は、「Flash 専用プレーヤ API リファレンス」APIModules クラスに記載されています。

コンテンツをロードする

アプリケーションは、Content モジュール API を呼び出すことによって、コンテンツをロードします。プレーヤは、コンテンツがそれにプログラミングされた状態でロードされます。このコンテンツは、getMedia メソッドを使って、同期して取得することができます。プレーヤにまだロードされていないデータベースからコンテンツを取得するには、非同期の呼び出しを行う必要があります。これは、データベースのルックアップには一定の時間がかかり、ルックアップの結果が戻ってくるまでアプリケーションをブロックしないようにするためです。このような場合は、getMediaAsynch メソッドを使用します。プレイリストにも同じ規則が適用されます。

次に、プレーヤに現在ロードされている動画を取得してから、別の動画を取得する方法を例として示します。

public function templateLoaded (evt:Event):void{
 trace("template loaded"); 
 mPlayer = bcp.getModule("videoPlayer"); 
 mContent = bcp.getModule("content"); 
 mExp = bcp.getModule("experience"); 
 mExp.addEventListener ("templateReady", templateReady); 
}
public function templateReady (evt:Event):void{
 mExp.addEventListener ("contentLoad", contentLoad); 
 mContent.addEventListener ("videoLoad", videoLoad); 
}
 
public function contentLoad (evt:Event):void{ 
 mContent.getMediaAsynch (0123456789); //ここには有効なビデオ ID を使用する 
}
 
public function videoLoad(evt:Object):void { 
 mPlayer.loadVideo(evt.video.id); 
}

ユーザー インタラクション イベントを待つ

Flash 専用プレーヤ API は、友人に電子メールを送信するなど、ユーザーがプレーヤで特定の操作を実行すると通知します。これらのイベントをキャプチャし、シンプルなイベントリスナを使用して分析のバックエンドを送信することができます。

public function templateLoaded(evt:Event):void {   
 mMenu = bcp.getModule("menu"); 
 mExp.addEventListener ("templateReady", templateReady); 
}
public function templateReady(evt:Event):void {   
 mMenu.addEventListener("sendEmailClick", emailSent); 
}
public function emailSent(evt:Event):void { 
 trace("An email was sent!"); 
}

フルスクリーン表示に変更する

Video Cloud プレーヤには、動画再生をフルスクリーン表示する機能が備わっています。プレーヤの UI には、画面をフルスクリーン表示に拡大できるボタンが含まれます。また、プレーヤ API を使用してフルスクリーン表示を起動することもできます。Flash のセキュリティ対策のため、このメソッドは、マウス イベントやキーボード イベントなど、ユーザーがトリガしたイベント ハンドラ内でのみ呼び出すことができます。

public function onMouseClick(evt:Event):void { 
 mPlayer = bcp.getModule("videoPlayer"); 
 mPlayer.goFullScreen(true); 
}

プレーヤを Flash アプリケーションに埋め込んでいる場合は、フルスクリーン モードを適切に表示するため、シェルを設定する必要があります。object タグおよび embed タグで、allowFullScreen パラメータを true に設定する他、シェル SWF ファイルに次のコードを含める必要もあります。

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

このコードでは、プレーヤを拡大せずにフルスクリーン表示できます(プレーヤは、拡大するのではなく、内部的にサイズ変更する必要があります)。また、ステージがデフォルト サイズに戻ったときに、プレーヤに通知を行います。

デバッグ

カスタム コードのデバッグに役立つユーティリティについては、「Video Cloud プレーヤをデバッグする」を参照してください。experienceModule.debug() メソッドを使用して、デバッガ ユーティリティに表示されるカスタム デバッグ メッセージを作成できます。

次のステップ

ブライトコーブ サポート センタには、プレーヤ API の使用方法に関する他のリソースがあります。

タグ
ActionScript