Flash 専用プレーヤ API の MediaEvent

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

このトピックでは、VideoPlayer および VideoDisplay コンポーネントによってディスパッチされるイベントのモデルについて説明します。従来のバージョンで、VideoPlayer および VideoDisplay コンポーネントによってディスパッチされていたイベントは、Video Cloud 3.2 リリースで非推奨になりました(ただし、非推奨となったこれらのイベントは、下位互換性を確保するために使用することはできます)。代わりに、Video Cloud では新しい MediaEvent を提供します。MediaEvent は、プログレッシブ ダウンロードおよびストリーミング コンテンツのイベント動作に一貫性を持たせるために使用されます。非推奨になった VideoEvent と同様、MediaEvent にも、位置および長さのプロパティに加え、イベントがディスパッチされた MediaDTO への参照を保持するメディア プロパティが含まれています。古い VideoEvent を継続して使用せずに、これらの新しいイベントを使用することをお勧めします。

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

Brightcove 3.2 での Flash 専用プレーヤ API の変更点について詳しくは、「Video Cloud プレーヤ API の変更点」を参照してください。Flash 専用プレーヤ API のイベントに関するリファレンス情報については、「Flash 専用プレーヤ API リファレンス」を参照してください。非推奨になったイベントのリストについては、以下の非推奨のイベントを参照してください。

MediaEvent

文字列のタイプ プレーヤ API SWC の定数
JavaScript API の定数
説明
"mediaChange" MediaEvent.CHANGE
BCMediaEvent.CHANGE
新しいメディアが動画プレーヤにロードされたり、キューされたりするとディスパッチされます。
"mediaBegin" MediaEvent.BEGIN
BCMediaEvent.BEGIN
メディアのバッファ後、初回再生時にディスパッチされます。これは、以前の「streamStart」に相当するもので、追跡目的で使用されます。メディア オブジェクトに対して 1 回しかディスパッチされないので、2 回目以降の再生時にはディスパッチされません(ただし、1 回目のメディア再生後に別のメディアが再生され、そのあとにメディアが再度ロードされた場合は除く)。
"mediaComplete" MediaEvent.COMPLETE
BCMediaEvent.COMPLETE
メディアの再生が完了したときにディスパッチされます。1 つのメディアに対し、1 回しか発生しません(ただし、1 回目のメディア再生後に別のメディアが再生され、そのあとにメディアが再度ロードされ、完了した場合は除く)。
"mediaPlay" MediaEvent.PLAY
BCMediaEvent.PLAY
メディアの再生が初めて開始したとき、または一時停止後に再開されたときにディスパッチされます。
"mediaStop" MediaEvent.STOP
BCMediaEvent.STOP
メディアが一時停止したとき、および、過去に再生されたメディアが最終的に完了したときにディスパッチされます(2 回目の再生の場合は、COMPLETE は発生しません)。
"mediaBufferBegin" MediaEvent.BUFFER_BEGIN
BCMediaEvent.BUFFER_BEGIN
メディアがバッファリングするために一時停止したときにディスパッチされます。
"mediaBufferComplete" MediaEvent.BUFFER_COMPLETE
BCMediaEvent.BUFFER_COMPLETE
メディアのバッファリングが完了したときにディスパッチされます。常に BUFFER_BEGIN とペアになります。BUFFER_BEGIN と BUFFER_COMPLETE の間には、他のイベントは入りません。
"mediaSeek" MediaEvent.SEEK
BCMediaEvent.SEEK
API の seek() メソッドを使用したり、プレイヘッドをドラッグしたりしたことにより、メディアが新しい位置に送られたときにディスパッチされます。
"mediaProgress" MediaEvent.PROGRESS
BCMediaEvent.PROGRESS
メディアの再生中に、フレームごとにディスパッチされます。
"mediaError" MediaEvent.ERROR
BCMediaEvent.ERROR
メディアへの接続、またはメディアのロードにエラーが発生すると、ディスパッチされます。
"mediaVolumeChange" MediaEvent.VOLUME_CHANGE
BCMediaEvent.VOLUME_CHANGE
API の setVolume() メソッドを使用したり、ボリューム コントロールをドラッグしたりしたことにより、メディアの音量が変わったときにディスパッチされます。
"mediaMuteChange" MediaEvent.MUTE_CHANGE
BCMediaEvent.MUTE_CHANGE
API の mute() メソッドを使用したり、ミュート コントロールをクリックしたりすることにより、プレーヤのミュート設定(ミュートまたはミュート解除)が変更されたときにディスパッチされます。

イベント動作

MediaEvents では、次の動作が予想されます。

  • 常に最初に発生するイベントは、新規メディアがプレーヤにロードされたことを通知する CHANGE です。1 回目の CHANGE イベントを受け取るには、TEMPLATE_READY の前に 1 回目の CHANGE が発生したときに、TEMPLATE_LOADED ハンドラにリスナを追加する必要があります。
  • 再生が開始すると、PLAY が発生します。autostart、自動再生、API、またはユーザー操作により、再生が開始したときに起こります。
  • メディアへの接続またはメディアのロードにエラーが発生した場合は、PLAY 後に ERROR イベントが発生します。
  • メディアに接続できる場合は、BUFFER_BEGIN イベントがディスパッチされます。
  • 最初のバッファリングが完了すると、BUFFER_COMPLETE イベントがディスパッチされます。
  • バッファが終了すると BEGIN が発生し、メディアに接続され、再生中であることを示します。メディアの再生につき 1 回発生します。
  • メディアの再生中は、フレームごとに PROGRESS イベントが発生します。PROGRESS イベントは、BEGIN がディスパッチされなければ発生しません。
  • ユーザーや API によって、それ以降のバッファやリング一時停止、またはシークが行われない場合は、メディアは COMPLETE イベントで終了します。その前に STOP イベントが発生します。それ以降、ユーザー操作や API インタラクションが行われなければ、COMPLETE のあとにイベントはディスパッチされません。
  • メディアが再度再生されると、PLAY イベントが発生します。この再生時は、BEGIN イベントはディスパッチされません。PLAY と、それ以降の PROGRESS イベントの間には、バッファ イベントはありません。
  • メディアが 2 回目の再生を終了すると、STOP イベントだけがディスパッチされます。COMPLETE イベントはディスパッチされません。
  • ユーザー操作または API インタラクションによってイベントが発生するたびに、VOLUME_CHANGE および MUTE_CHANGE イベントが起こります。これらは、メディアの再生を処理するイベントからは、完全に切り離されたイベントです。

例外動作

異なる種類のメディア、およびメディア再生のイベントの統一性には、既知の例外がいくつかあります。

  • メディアの再生中に、ストリーミング コンテンツのプレイヘッドをドラッグすると、メディアが一時停止になったときにまず STOP がディスパッチされ、プレイヘッドがドラッグされると SEEK イベントがディスパッチされます。再生が再開されると、最後の PLAY イベントがディスパッチされます。プログレッシブ ダウンロード コンテンツについては、ドラッグ操作中もメディアは継続的に再生されるので、STOP/PLAY イベントは発生しません。
  • 帯域幅、接続、メディアのビットレートなどが統一されていないため、イベントのバッファリングは、場合によって若干異なります。シーク後にバッファする必要があることもあれば、必要ないこともあります。プレーヤは、Flash Player のメディア コントローラ クラスでバッファリング イベントを順次発生させ、BUFFER_BEGIN の前に BUFFER_COMPLETE が発生するなどという異常事態が発生しないようにします。
  • イベントには、メディアの長さを秒単位で返す、長さの属性があります。ただし、CHANGE については、長さをミリ秒単位で返します。

非推奨のイベント

VideoPlayer Module 内の以下のイベントは非推奨になりました。代わりに、新しい MediaEvent を使用してください。

     videoChange
     videoLoad
     streamStart
     videoComplete
     videoStart
     videoStop
     startBuffering
     endBuffering
     seek
     videoProgress
     volumeChange
     mute

 

タグ
events