このトピックでは、プレーヤ公開コードで有効なプレーヤ エラー処理について説明しています。コンテンツがプレーヤで利用できない場合、またはプレーヤ自体がロードできない場合に、このエラー処理によって、追跡およびその対応を行うことができます。また、このことにより、お客様のレポート システムまたは警告システムに通知が送信され、場合によってプレーヤに提示されるはずの内容を他の HTML に置き換えることがあります。
templateLoad、templateReady および templateError イベントのプレーヤ公開コードでハンドラ名を指定することができます。JavaScript プレーヤ公開コード等の設定パラメータを使用して、これらのハンドラ名を指定することができます。
<param name="templateLoadHandler" value="onPlayerLoaded" /> <param name="templateReadyHandler" value="onPlayerReady" /> <param name="templateErrorHandler" value="onPlayerError" />
これらのイベントの 1 つがプレーヤで発生した場合、それに関連したハンドラ関数が起動します。このことにより、グローバル onTemplateLoaded() 関数を使用せずにプレーヤ公開コード内から一意のハンドラを設定することができます。この方法で、1 つのページにある複数のプレーヤの異なるコードパスを簡単に実行することができます。
これらのハンドラの値はグローバル関数であるか、または他のオブジェクト内でネスト化することができます。次に例を示します。
<param name="templateLoadHandler" value="playerController.onPlayerLoaded" />
Brightcove プレーヤは特定の条件でのエラー イベントをディスパッチします。これにより、親コンテナ(親 SWF または HTML ページのいずれか)に、プレーヤからユーザーに個別にメッセージを送ること、エラー の記録、またはエラーに対処するあらゆる方法の実施を許可します。これらのメッセージを取得するために、プレーヤの Player API を有効にする必要はありません。実際、エラー状態の多くは、プレーヤのロード以前に発生し、エラーに注意する方法は標準 API モデルとは異なります。
JavaScript プレーヤ公開コードでは、エラー ハンドラはプレーヤ オブジェクト内のパラメータ値として以下のように指定されます。
<param name="templateErrorHandler" value="onTemplateError" />
ハンドラは、type、errorType、code、および info プロパティのある一般オブジェクトを受け入れる関数でなければなりません。
function onTemplateError(event) {
alert("type: " + event.type);
alert("errorType: " + event.errorType)
alert("code: " + event.code);
alert("info: " + event.info);
}
これらのプロパティの意味については 「ErrorEvent プロパティ」を参照してください。
ActionScript プレーヤ公開コードでは、プレーヤ インスタンスの templateError を待機してください。このイベントのハンドラは、type、errorType、code、および info プロパティのある一般オブジェクトとなります。
var player:BrightcovePlayer = new BrightcovePlayer();
player.addEventListener("templateError", onTemplateError);
private function onTemplateError(event:Object):void {
trace("type: " + event.type);
trace("errorType: " + event.errorType);
trace("code: " + event.code);
trace("info: " + event.info);
}
これらのプロパティの意味については 「ErrorEvent プロパティ」を参照してください。
Brightcove Player API SWC(プレーヤで有効な Player API を要求する)を使用している場合は、ストロング タイピングに com.brightcove.api.events.ErrorEvent を使用することができますが、上記で提示されている標準 ActionScript 実装と同じ動作を行います。
var player:BrightcovePlayerWrapper = new BrightcovePlayerWrapper(BrightcovePlayer());
player.addEventListener(ErrorEvent.TEMPLATE_ERROR, onTemplateError);
private function onTemplateError(event:ErrorEvent):void {
trace("type: " + event.type);
trace("errorType: " + event.errorType)
trace("code: " + event.code);
trace("info: " + event.info);
}
ActionScript プレーヤ公開コードを Brightcove Player API SWC で BrightcoveFlexComponent という Flex プロジェクト内で使用している場合は、コンポーネントの MXML 内でエラー イベント ハンドラを指定することができます。
<bc:BrightcoveFlexComponent playerClass="{BrightcovePlayer}" templateError="onTemplateError(event)" />
エラー イベントはプレーヤのシンプルな HTML 埋め込みではサポートされていません。JavaScript もしくは ActionScript プレーヤ公開コードが使用されている場合のみにサポートされます。
ErrorEvent には type、errorType、code、および info プロパティがあります。
type の値は、常に templateError です。
errorType の値は、次の文字列のいずれかになります。
"unknown"
"domainRestricted"
"geoRestricted"
"invalidID"
"noContent"
"unavailableContent"
"upgradeRequiredForVideo"
"upgradeRequiredForPlayer"
"serviceUnavailable"
errorType プロパティは、手動デバッグのための解読可能な文字列を提供します。しかし、エラーを取り扱うときには、文字列の比較を使用することを避け、提供された定数のある code プロパティを使用してください。
code の値は整数値で表される次の定数のいずれかです。
| integer コード | string コード | 説明 |
|---|---|---|
| 0 | "unknown" | ロードまたは再生を妨害する不明な問題がありました。 |
| 1 | DOMAIN_RESTRICTED | 要求しているドメインではプレーヤの視聴が許可されていません。 |
| 2 | GEO_RESTRICTED | 現在の地域では、プレーヤは視聴できません。 |
| 3 | INVALID_ID | プレーヤに提供された ID は、現在アクティブなプレーヤのものではありません。 |
| 4 | NO_CONTENT | プレーヤにはプログラム済みのコンテンツがありません。 |
| 5 | UNAVAILABLE_CONTENT | 動画コンテンツをロードする際にエラーが発生しました |
| 6 | UPGRADE_REQUIRED_FOR_VIDEO | コンテンツの視聴には、Flash Player のアップグレードが必要です。 |
| 7 | UPGRADE_REQUIRED_FOR_PLAYER | プレーヤのロードには、Flash Player のアップグレードが必要です。 |
| 8 | SERVICE_UNAVAILABLE | 初期ロードのバックエンドへの接続の際にエラーが発生しました。 |
JavaScript ではこれらのコンテンツは brightcove.errorCodes オブジェクトで見つけることができます(例、brightcove.errorCodes.DOMAIN_RESTRICTED)。Player API SWC を使用している ActionScript 埋め込みでは、コンテンツは com.brightcove.api.error.ErrorTypes で見つけることができます。
info プロパティは、現時点ではほとんどのイベントで使用されませんが、将来、追加される可能性のあるデータのプレースホルダです。JavaScript での SERVICE_UNAVAILABLE および UPGRADE_REQUIRED_FOR_PLAYER という表示の場合は、プレーヤ HTML オブジェクト ID は info プロパティで渡されます。