ADOBE® MEDIA SERVER 5.0.3
デベロッパーズガイド
翻訳:株式会社サムライズ |
注意
Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。
エラーの処理
ビデオアプリケーションの構築では、接続やストリームの管理方法を理解することが重要です。ネットワーク環境では、次のような理由によって、接続が失敗する可能性があります。
• クライアントとサーバーとの間のどこかで障害が発生している。
• クライアントが接続しようとした URI が正しくない。
• サーバー上にアプリケーションインスタンスが存在しない。
• サーバーに障害が発生しているか、またはビジー状態である。
• クライアントの最大数、または帯域幅の最大閾値を超えている。
接続が正常に確立されると、NetStreamオブジェクトを作成して、ビデオをストリーム再生することができます。ただし、ストリームに問題が発生する可能性があります。現在のフレームレートを監視したり、バッファーが空である旨のメッセージがないかどうか確認したり、ビデオのダウンサンプリングを行ったり、障害点を検出したり、ストリームが見つからない場合の処理を行ったりする必要があります。再生中に発生した次のようなエラーについてユーザーに通知します。
• 再生中にネットワーク接続が切断される。
• 再生が完了する前にバッファーが空になる。
アプリケーションが問題に正しく対処できるようにするには、接続やストリームに影響を与える netStatusイベントをリッスンし、対応する必要があります。アプリケーションのテスト時や実行時には、Administration Consoleを使用して接続やストリームに関する様々なイベントのトラブルシューティングを行うこともできます。
接続が確立できない場合、NetStreamオブジェクトやその他のオブジェクトを作成する前に、netStatusイベントを処理します。サーバーの URIに再接続を試みたり、ユーザーにユーザー名とパスワードの再入力を求めたり、その他の処理を行ったりすることが必要な場合があります。
次の表は、確認対象のイベントコードと、そのイベントが発生したときの処理の例を示しています。
イベント |
機能 |
NetConnection.Connect.Failed |
ユーザーに対して、サーバーがダウンしている旨のメッセージを表示します。 |
NetConnection.Connect.Rejected |
再接続を試みます。 |
NetConnection.Connect.AppShutdown |
すべてのストリームオブジェクトを切断し、接続を閉じます。 |
注意:SimpleConnectManage サンプルの SimpleConnectManage.as をご利用ください(これは ActionScript 3.0 で記述されています)。
NetStatus イベントを処理するクライアントコードの記述
❖ NetConnection オブジェクトを作成してサーバーに接続します。次に、netStatus イベントハンドラーを記述して、その中で各イベントを検出し、アプリケーションに応じて適切な処理を行います。以下にその例を示します。
public function netStatusHandler(event:NetStatusEvent):void
{
trace("connected is: " + nc.connected );
trace("event.info.level: " + event.info.level);
trace("event.info.code: " + event.info.code);
switch (event.info.code)
{
...
case "NetConnection.Connect.Rejected":
trace ("Oops! the connection was rejected");
// try to connect again
break;
case "NetConnection.Connect.Failed":
trace("The server may be down or unreachable");
break;
case "NetConnection.Connect.AppShutDown":
trace("The application is shutting down");
// this method disconnects all stream objects
nc.close();
break;
...
}
}
アプリケーションで再生しようと試みたストリームが見つからない場合、NetStream.Play.StreamNotFound コードで netStatusイベントがトリガーされます。netStatusイベントハンドラーでこのコードを検出し、対応する処理を実行する必要があります。例えば、ユーザーに対してメッセージを表示したり、デフォルトの場所にある標準のストリームを再生したりします。
クライアントコードを書く
❖ netStatus イベントハンドラー内で、StreamNotFound のコードを確認し、対応する処理を実行します。
private function onNetStatus(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetStream.Play.StreamNotFound":
trace("The server could not find the stream you specified");
ns.play( "public/welcome");
break;
...
}
最終更新日 2013/9/30