| パッケージ | flash.net |
| クラス | public class NetStream |
| 継承 | NetStream EventDispatcher Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
NetStream.publish() を使用してストリームをパブリッシュするか、NetStream.play() を使用して、パブリッシュされたストリームにサブスクライブし、データを受信できます。ライブ (リアルタイム) データおよび以前に記録したデータをパブリッシュすることも、再生することもできます。また、NetStream.send() メソッドを呼び出して、メッセージをすべてのサブスクライブしているクライアントに送信することもできます。
SWF ファイルにビデオを埋め込むよりも、外部のビデオファイルを再生した方が、パフォーマンスとメモリ管理の効率がよくなる、ビデオと SWF のフレームレートを独立化できるなどのメリットがあります。
Adobe AIR および Flash Player 9.0.115.0 以降では、H.264 ビデオや HEAAC V2 でエンコードされたオーディオを含む場合、F4V、MP4、M4A、MOV、MP4V、3GP、3G2 など、標準の MPEG-4 コンテナ形式から派生したファイルをサポートします。 H.264 では、Sorenson または On2 の同じエンコードプロファイルと比較して、低いビットレートで高品質のビデオが配信されます。 HE-AAC v2 は、Spectral Band Replication(SBR)技術と Parametric Stereo(PS)技術を使用して低いビットレートでのコーディング効率を向上させる AAC(MPEG-4 ビデオ標準で定義されている標準オーディオ形式)を拡張したものです。 サポートされているコーデックおよびファイル形式については、、http://www.adobe.com/go/hardware_scaling_jp、および www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
ストリームのパブリッシュおよび再生のためのワークフロー:
NetConnection.connect() メソッドを呼び出して、サーバー上のアプリケーションインスタンスに接続します。NetStream.attachAudio() メソッドおよび NetStream.attachCamera() メソッドを呼び出します。NetStream.publish() メソッドを呼び出して、ストリームに一意の名前を付けます。また、ストリームを介してサーバーにデータを送信します。これにより、他のユーザーがデータを受信できるようになります。データをパブリッシュしたときに、そのデータを記録することもできます。これにより、後でデータを再生することができます。NetStream.play() メソッドを呼び出して、ライブストリームまたは録音したストリームを再生します。play() メソッドを渡します。これは、publish() メソッドに渡された文字列の名前です。
Flash Media Server でのデータキーフレームの使用:NetConnection オブジェクトと NetStream オブジェクトを作成した後、オーディオまたはビデオをサーバーにストリーミングするときに、NetStream.send() を使用してライブのオーディオまたはビデオにメタデータを追加できます。メタデータには、ビデオの高さまたは幅、ビデオの継続時間、作成者の名前などの情報を設定できます。メタデータを定義するには、特別なハンドラ名 @setDataFrame を、NetStream.send() に渡す最初の引数として使用します。
Flash Media Server ストリーム、プログレッシブ F4V ファイルまたはプログレッシブ FLV ファイルからのデータの受信:Flash Media Server、F4V ファイルおよび FLV ファイルは、ストリーミングまたは再生中に特定のデータポイントに対してデータを含むイベントオブジェクトを送信できます。再生中は、2 つの方法でストリームまたは FLV ファイルからのデータを処理できます。
NetStream.client プロパティを使用して、特定のデータ処理関数の呼び出しにオブジェクトを割り当てます。NetStream.client プロパティに割り当てられたオブジェクトは、データポイント onCuePoint()、onImageData()、onMetaData()、onPlayStatus()、onTextData()、および onXMPData() を監視します。次に、これらの関数内にプロシージャを書き込んで、再生中にストリームまたは FLV ファイルから返されたデータオブジェクトを処理します。詳しくは、NetStream.client プロパティを参照してください。
注意:MP3 などのオーディオファイルでデータを送信するには、Sound クラスを使用してオーディオファイルと Sound オブジェクトを関連付けます。次に、Sound.id3 プロパティを使用してサウンドファイルからメタデータを読み込みます。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| bufferLength : Number [読み取り専用]
バッファに現在格納されているデータの秒数です。 | NetStream | ||
| bufferTime : Number
ストリームの表示を開始するまでにメッセージをどの程度の時間バッファリングしておくかを指定します。 | NetStream | ||
| bytesLoaded : uint [読み取り専用]
既にアプリケーションにロードされているデータのバイト数です。 | NetStream | ||
| bytesTotal : uint [読み取り専用]
アプリケーションにロードされるファイルの総バイト数。 | NetStream | ||
| checkPolicyFile : Boolean
ビデオファイルのロードを開始する前に、アプリケーションが、ロードされるビデオファイルのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。 | NetStream | ||
| client : Object
FLV ファイルデータのストリーミングの処理にコールバックメソッドが呼び出されるオブジェクトを指定します。 | NetStream | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| currentFPS : Number [読み取り専用]
1 秒あたりの表示フレーム数です。 | NetStream | ||
| farID : String [読み取り専用]
この NetStream インスタンスに接続されている相手側の識別子です。 | NetStream | ||
| farNonce : String [読み取り専用]
実際にはストリームの向こう側によって選択される値で、この接続に固有です。 | NetStream | ||
| info : NetStreamInfo [読み取り専用]
サービスの質に関する統計情報をプロパティが持つ NetStreamInfo オブジェクトを返します。 | NetStream | ||
| liveDelay : Number [読み取り専用]
ライブ (バッファリングされていない) モードでサブスクライブしているストリームバッファ内にあるデータの秒数です。 | NetStream | ||
| maxPauseBufferTime : Number
一時停止モード中にメッセージをバッファリングしておく時間を秒単位で指定します。 | NetStream | ||
| nearNonce : String [読み取り専用]
実際にはストリームのこちら側によって選択される値で、この接続に固有です。 | NetStream | ||
| objectEncoding : uint [読み取り専用]
この NetStream オブジェクトのエンコード(AMF バージョン)です。 | NetStream | ||
| peerStreams : Array [読み取り専用]
パブリッシュするこの NetStream インスタンスを監視している、サブスクライブするすべての NetStream インスタンスを保持するオブジェクト。 | NetStream | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| soundTransform : SoundTransform
この NetStream オブジェクトのサウンドを制御します。 | NetStream | ||
| time : Number [読み取り専用]
再生ヘッドの位置(秒単位)です。 | NetStream | ||
| メソッド | 定義元 | ||
|---|---|---|---|
指定された NetConnection オブジェクトを使用して、ビデオファイルを再生するためのストリームを生成します。 | NetStream | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | |
ソースとして渡される Microphone オブジェクトから NetStream オブジェクトを介して送信されるオーディオストリームを指定します。 | NetStream | ||
カメラからビデオのキャプチャを開始します。または、theCamera が null に設定されると、キャプチャを停止します。 | NetStream | ||
ストリーム上のすべてのデータの再生を停止し、time プロパティを 0 に設定して、他の用途でストリームにアクセスできるようにします。 | NetStream | ||
![]() |
イベントをイベントフローに送出します。 | EventDispatcher | |
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
ピアーがパブリッシュするストリームが、ピアーがサブスクライブするストリームに一致する場合に呼び出されます。 | NetStream | ||
ビデオストリームの再生を一時停止します。 | NetStream | ||
メディアファイルを再生します。 | NetStream | ||
再生用の各オプションを設定のうえ、メディアファイルの再生を開始します。 | NetStream | ||
ローカルに保存されたメディアファイルから任意の DRM メタデータを抽出します。 | NetStream | ||
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
クライアントから Flash Media Server へ、ストリーミングオーディオ、ビデオ、およびテキストメッセージを送信します。送信中にストリームを記録することもできます。 | NetStream | ||
ストリーム上で着信オーディオが再生されるかどうかを示します。 | NetStream | ||
ストリーム上で着信ビデオが再生されるかどうかを指定します。 | NetStream | ||
着信ビデオのフレームレートを指定します。 | NetStream | ||
![]() |
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | |
[静的]
ローカルにキャッシュされたすべてのDRM(デジタル著作権管理)バウチャーデータを削除します。 | NetStream | ||
再生を一時停止していたビデオストリームを再開します。 | NetStream | ||
指定された位置に最も近いキーフレーム (ビデオ業界では I フレームとも呼ばれます) をシークします。 | NetStream | ||
パブリッシュされたストリーム上で、サブスクライブしているすべてのクライアントにメッセージを送信します。 | NetStream | ||
基になる暗号化コンテンツを表示するために必要な DRM 認証資格情報を設定します。 | NetStream | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
ストリームの再生を一時停止または再開します。 | NetStream | ||
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | [ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| 非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。 | NetStream | |||
![]() | [ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| NetStream オブジェクトが、再生の前にユーザーの認証資格情報を要求する、DRM (デジタル著作権管理) で暗号化されたコンテンツを再生しようとしたときに送出されます。 | NetStream | |||
| NetStream オブジェクトが DRM (デジタル著作権管理) で暗号化されたファイルを再生しようとして、DRM に関連したエラーを検出したときに送出されます。 | NetStream | |||
| DRM (デジタル著作権管理) で暗号化されたコンテンツの再生が開始されるときに送出されます (ユーザーが認証されてコンテンツの再生が許可された場合)。 | NetStream | |||
| 入出力エラーが発生してネットワーク処理が失敗したときに送出されます。 | NetStream | |||
| NetStream オブジェクトが、そのステータスまたはエラーの状態をレポートすると送出されます。 | NetStream | |||
| ビデオファイルの再生中に埋め込まれたキューポイントに達した場合に応答するリスナーを定義します。 | NetStream | |||
| AIR がメディアファイルに埋め込まれた DRM コンテンツメタデータを抽出する場合に、応答するリスナーを確立します。 | NetStream | |||
| 再生中のメディアファイルにバイト配列として埋め込まれているイメージデータを Flash Player が受け取ったときに応答するリスナーを定義します。 | NetStream | |||
| 再生中のビデオに埋め込まれた記述的情報を Flash Player が受け取ったときに応答するリスナーを定義します。 | NetStream | |||
| NetStream オブジェクトによるストリームの再生が終了した場合に応答するリスナーを定義します。 | NetStream | |||
| Flash Player が再生中のメディアファイルに埋め込まれたテキストデータを受信したときに応答するリスナーを定義します。 | NetStream | |||
| 再生中のビデオに埋め込まれている Adobe Extensible Metadata Platform(XMP)独自の情報を Flash Player が受け取ったときに応答するリスナーを定義します。 | NetStream | |||
| アプリケーションが NetStream.play() メソッドを呼び出して DRM (デジタル著作権管理) で暗号化されたコンテンツを再生しようとしたときに送出されます。 | NetStream | |||
| 定数 | 定義元 | ||
|---|---|---|---|
| CONNECT_TO_FMS : String = "connectToFMS" [静的]
NetStream インスタンスのコンストラクタに対するパラメータとして使用される静的オブジェクト。 | NetStream | ||
| DIRECT_CONNECTIONS : String = "directConnections" [静的]
ピアーツーピアーの発行者接続を作成します。 | NetStream | ||
| bufferLength | プロパティ |
bufferLength:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バッファに現在格納されているデータの秒数です。このプロパティを bufferTime プロパティと組み合わせることにより、あとどれくらいの時間でバッファが満たされるかを見積もることができます。例えば、バッファにデータがロードされるのを待つユーザーに対してフィードバック情報を提供することが可能になります。
public function get bufferLength():Number関連項目
| bufferTime | プロパティ |
bufferTime:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ストリームの表示を開始するまでにメッセージをどの程度の時間バッファリングしておくかを指定します。例えば、ストリームの最初の 15 秒間を中断することなく再生するには、bufferTime を 15 に設定します。この場合、アプリケーションはデータを 15 秒間バッファリングしてからストリームの再生を開始します。
デフォルト値は 0.1(1/10 秒)です。バッファ内の現在の秒数を調べるには、bufferLength プロパティを使用します。
メモ : 記録されている(ライブではない)コンテンツをストリーミングするときの歪みを避けるには、Netstream.bufferTime の値を 0 に設定しないようにします。記録されているコンテンツの場合、デフォルトでは入力バッファが使用され、メディアデータがキューに置かれてメディアが適切に再生されます。記録されているコンテンツでは、デフォルト値を使用するか、バッファ時間を延長します。
Flash Player 9.0.115.0 以降、Flash Player では、NetStream.pause() が呼び出されたときにバッファをクリアしなくなりました。Flash Player 9.0.115.0 以前は、Flash Player はバッファが満杯になるまで待機してから再生を開始していましたが、このため遅延がよく発生していました。
1 回の一時停止の場合、NetStream.bufferLength プロパティには 60 秒または NetStream.bufferTime の値の 2 倍のうち、いずれか大きい方の値という制限があります。たとえば、bufferTime が 20 秒の場合、Flash Player は NetStream.bufferLength が 20*2 (40) または 60 のうち、大きい方の値になるまでバッファするため、この場合は、bufferLength が 60 秒になるまでバッファします。bufferTime が 40 秒の場合、Flash Player は bufferLength が 40*2 (80) または 60 のうち、大きい方の値になるまでバッファするため、この場合は、bufferLength が 80 秒になるまでバッファします。
bufferLength プロパティにも絶対制限があります。pause() への呼び出しによって、bufferLength が増加し 600 秒か bufferTime の値の 2 倍のうち高いほうを超えた場合、Flash Player はバッファをフラッシュし、bufferLength を 0 にリセットします。たとえば、bufferTime が 120 秒の場合は、bufferLength が 600 秒に達すると、Flash Player はバッファをフラッシュします。bufferTime が 360 秒の場合は、bufferLength が 720 秒に達すると、Flash Player はバッファをフラッシュします。
ヒント:例えば、コードで NetStream.pause() を使用し、閲覧者がコマーシャルを見ている間、データをバッファし、メインのビデオが開始されたときに一時停止を解除することができます。
一時停止の新しい動作の詳細については、http://www.adobe.com/go/learn_fms_smartpause_jp を参照してください。
Flash Media Server。バッファの動作は、パブリッシュするストリームまたはサブスクライブするストリームにバッファ時間が設定されているかどうかによって異なります。パブリッシュするストリームの場合、bufferTime には、送信バッファに蓄積されたフレームの送信を開始するまでの時間の長さを指定します。高速な接続の場合は、バッファ時間を考慮する必要はありません。データはアプリケーションがバッファリングすると即座に送信されます。一方、低速な接続では、アプリケーションがデータをバッファリングする速度とそのデータをクライアントに送信する速度が大幅に異なることがあります。
サブスクライブするストリームの場合、bufferTime には、受信データをバッファリングして、ストリームの表示を開始するまでの時間を指定します。例えば、ストリームの最初の 15 秒間を中断することなく再生するには、bufferTime を 15 に設定します。この場合、Flash はデータを 15 秒間バッファリングしてからストリームの再生を開始します。
記録されたストリームを再生するときに、bufferTime が 0 の場合、Flash はバッファ時間を小さな値 (約 10 ミリ秒) に設定します。ライブストリームを後で再生する場合 (例えば、再生リストから再生)、このバッファ時間が保持されます。つまり、bufferTime はストリームに対して 0 以外の値のままになります。
public function get bufferTime():Number public function set bufferTime(value:Number):void関連項目
| bytesLoaded | プロパティ |
bytesLoaded:uint [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
既にアプリケーションにロードされているデータのバイト数です。このプロパティを bytesTotal プロパティと組み合わせることにより、あとどれくらいの時間でバッファが満たされるかを見積もることができます。例えば、バッファにデータがロードされるのを待つユーザーに対してフィードバック情報を提供することが可能になります。
public function get bytesLoaded():uint関連項目
| bytesTotal | プロパティ |
bytesTotal:uint [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
アプリケーションにロードされるファイルの総バイト数。
public function get bytesTotal():uint関連項目
| checkPolicyFile | プロパティ |
checkPolicyFile:Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ビデオファイルのロードを開始する前に、アプリケーションが、ロードされるビデオファイルのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。このプロパティは、プログレッシブビデオダウンロードに NetStream オブジェクト(スタンドアローンファイル)を使用する場合、または呼び出し元の ファイルの専用ドメイン外にあるファイルをロードする場合に適用します。このプロパティは、NetStream オブジェクトを使用して RTMP アセットを取得する場合には無視されます。
このプロパティを true に設定すると、呼び出し元の SWF ファイルのドメイン外からビデオファイルをロードし、BitmapData.draw() メソッドを使用してビデオにピクセルレベルでアクセスすることができます。ロード時に BitmapData.draw() プロパティを checkPolicyFile に設定しないで true を呼び出した場合、SecurityError 例外を受け取る場合があります。これは、必要なポリシーファイルがダウンロードされていないためです。
ロードするビデオへのピクセルレベルのアクセスが必要ない場合は、checkPolicyFile を true に設定しないようにしてください。ポリシーファイルの確認はネットワーク帯域幅を消費し、ダウンロードの開始が遅れる場合があります。
NetStream.play() メソッドを呼び出すときに checkPolicyFile を true に設定する場合、Flash Player または AIR ランタイムは、関連するクロスドメインポリシーファイルを正常にダウンロードするか、NetStream.play() の呼び出しで指定したオブジェクトのダウンロードを開始する前に、そのようなポリシーファイルが存在しないことを判別しておく必要があります。ポリシーファイルの存在を確認するため、Flash Player または AIR ランタイムは次のアクションをこの順番で実行します。
Security.loadPolicyFile() メソッドの呼び出しで指定した保留中ポリシーファイルをダウンロードしようとします。NetStream.play() に渡された URL に対応するデフォルトの場所からポリシーファイルをダウンロードしようとします。その URL と同じサーバー上の /crossdomain.xml がデフォルトの場所です。どのような場合も、Flash Player または AIR ランタイムでは、該当するポリシーファイルがビデオのサーバー上に存在しており、ポリシーファイルの場所に基づいて play() に渡された URL にあるオブジェクトへのアクセスを提供し、<allow-access-from> タグによって呼び出し元コードのファイルのドメインがビデオにアクセスできるようにする必要があります。
checkPolicyFile を true に設定した場合、アプリケーションはビデオをダウンロードする前に、ポリシーファイルが検証されるまで待機します。NetStream オブジェクトから BitmapData.draw() イベントまたは onMetaData イベントを受け取るまで、NetStatus を呼び出すなどの、ビデオデータに対するピクセルレベルの操作は実行を待つ必要があります。
checkPolicyFile を true に設定したが関連ポリシーファイルが見つからない場合、エラーになって SecurityError 例外がスローされるのは、ポリシーファイルを必要とする操作を実行してからです。
サーバーサイド HTTP リダイレクトを使用する URL からファイルをダウンロードする場合は、checkPolicyFile に注意してください。アプリケーションは、NetStream.play() () で指定された初期 URL に対応するポリシーファイルを取得しようとします。最終的なファイルが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはファイルの最終的な URL(セキュリティ判定においてはこの URL が重要となります)に適用できないことがあります。
ポリシーファイルの詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。
public function get checkPolicyFile():Boolean public function set checkPolicyFile(value:Boolean):void関連項目
| client | プロパティ |
client:Object| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
FLV ファイルデータのストリーミングの処理にコールバックメソッドが呼び出されるオブジェクトを指定します。デフォルトのオブジェクトは、作成される NetStream オブジェクト this です。client プロパティを別のオブジェクトに設定すると、コールバックメソッドはその別のオブジェクトで呼び出されます。NetStream.client
オブジェクトは関数 onCuePoint()()onImageData()、onMetaData()()onPlayStatus()、onTextData()、および onXMPData() を呼び出して、関連付けられたデータオブジェクトを受け取ることができます。
client プロパティをイベントハンドラに関連付けるには:
client プロパティに割り当てます。
var customClient:Object = new Object();
my_netstream.client = customClient;
customClient.onImageData = onImageDataHandler;
public function onImageDataHandler(imageData:Object):void {
trace("imageData length: " + imageData.data.length);
}
データがストリームを通るとき、または再生中、データイベントオブジェクト(この場合は imageData オブジェクト)にデータが取り込まれます。 onImageData の説明を参照してください。client プロパティに関連付けられたオブジェクトの例がすべて記載されています。
client プロパティをサブクラスに関連付けるには:
class CustomClient {
public function onMetaData(info:Object):void {
trace("metadata: duration=" + info.duration + " framerate=" + info.framerate);
}
client プロパティに割り当てます。
my_netstream.client = new CustomClient();
データがストリームを通るとき、または再生中、データイベントオブジェクト(この場合は info オブジェクト)にデータが取り込まれます。 NetStream クラスの最後にあるクラス例を参照してください。client プロパティへのサブクラスインスタンスの割り当てが記載されています。
public function get client():Object public function set client(value:Object):voidTypeError — client プロパティは、null 以外のオブジェクトに設定する必要があります。
|
関連項目
| currentFPS | プロパティ |
currentFPS:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
1 秒あたりの表示フレーム数です。複数のシステム上で再生できるようにビデオファイルを書き出す場合、テスト中にこの値をチェックすることで、ファイルの書き出し時にどの程度の圧縮が必要かを見極めることができます。
public function get currentFPS():Number| farID | プロパティ |
farID:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
この NetStream インスタンスに接続されている相手側の識別子です。このプロパティは、RTMFP 接続に対してのみ定義されます。
public function get farID():String| farNonce | プロパティ |
farNonce:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
実際にはストリームの向こう側によって選択される値で、この接続に固有です。この値は、ストリームの向こう側では nearNonce 値となります。このプロパティは、RTMFP 接続に対してのみ定義されます。
public function get farNonce():String| info | プロパティ |
info:NetStreamInfo [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
サービスの質に関する統計情報をプロパティが持つ NetStreamInfo オブジェクトを返します。このオブジェクトは現在の状態のスナップショットです。
public function get info():NetStreamInfo関連項目
| liveDelay | プロパティ |
liveDelay:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ライブ (バッファリングされていない) モードでサブスクライブしているストリームバッファ内にあるデータの秒数です。このプロパティは、現在のネットワーク転送の遅延時間を示します。
このプロパティは、主に Flash Media Server などのサーバーで使用することを目的としています。詳細については、クラスの説明を参照してください。
このプロパティの値を取得して、ストリームの転送品質を大まかに判断し、それをユーザーに伝えることができます。
public function get liveDelay():Number| maxPauseBufferTime | プロパティ |
maxPauseBufferTime:Number
一時停止モード中にメッセージをバッファリングしておく時間を秒単位で指定します。このプロパティを使用して、一時停止モード中に行うバッファリングの量を制限できます。NetStream.bufferLength の値がこの制限に達するとバッファリングが停止します。この値を設定しない場合は、デフォルトの 60 秒または各一時停止の NetStream.bufferTime の値の 2 倍のいずれか高いほうに設定されます。
public function get maxPauseBufferTime():Number public function set maxPauseBufferTime(value:Number):void関連項目
| nearNonce | プロパティ |
nearNonce:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
実際にはストリームのこちら側によって選択される値で、この接続に固有です。この値は、ストリームの向こう側では farNonce 値となります。このプロパティは、RTMFP 接続に対してのみ定義されます。
public function get nearNonce():String| objectEncoding | プロパティ |
objectEncoding:uint [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
この NetStream オブジェクトのエンコード (AMF バージョン) です。NetStream オブジェクトは、関連付けされた NetConnection オブジェクトからその objectEncoding 値を継承します。ActionScript 3.0 SWF ファイルで Flash Player 9 以前にリリースされたサーバーと通信する必要がある場合は、このプロパティを理解することが重要です。詳細については、NetConnection クラスの objectEncoding プロパティの説明を参照してください。
このプロパティの値は、ローカルストリームかリモートストリームかによって異なります。ローカルストリームでは、null が NetConnection.connect() メソッドに渡され、NetConnection.defaultObjectEncoding の値が返されます。サーバーに接続しているリモートストリームでは、このサーバーとの接続のオブジェクトエンコーディングが返されます。
接続されていない場合にこのプロパティを読み取ろうとするか、このプロパティを変更しようとすると、アプリケーションにより例外がスローされます。
public function get objectEncoding():uint関連項目
| peerStreams | プロパティ |
peerStreams:Array [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
パブリッシュするこの NetStream インスタンスを監視している、サブスクライブするすべての NetStream インスタンスを保持するオブジェクト。
public function get peerStreams():Array| soundTransform | プロパティ |
soundTransform:SoundTransform| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
この NetStream オブジェクトのサウンドを制御します。詳細については、SoundTransform クラスを参照してください。
public function get soundTransform():SoundTransform public function set soundTransform(value:SoundTransform):void関連項目
| time | プロパティ |
time:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
再生ヘッドの位置 (秒単位) です。
Flash Media Server サブスクライブするストリームの場合、ストリームを再生した秒数です。パブリッシュするストリームの場合、ストリームをパブリッシュした秒数です。この数値は、小数点以下 3 桁までの精度があります。この数値に 1000 を掛けると、ストリームを再生したミリ秒単位の時間数になります。
サブスクライブするストリームでは、サーバーがデータの送信を停止してもストリームが開いたままになっている場合、time プロパティの値の増加が止まります。サーバーがデータの送信を再開すると、値の増加が止まった個所から値の増加が続けられます。
再生リストの要素間でストリームを切り替えても、time の値は増加を続けます。呼び出した NetStream.play() の reset が 1 または true に設定されている場合、または NetStream.close() を呼び出した場合、このプロパティは 0 に設定されます。
public function get time():Number関連項目
| NetStream | () | コンストラクタ |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定された NetConnection オブジェクトを使用して、ビデオファイルを再生するためのストリームを生成します。
サポートされているコーデックおよびファイル形式については、、http://www.adobe.com/go/hardware_scaling_jp、および www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
パラメータconnection:NetConnection — NetConnection オブジェクトです。
| |
peerID:String (default = "connectToFMS") — このパラメータはオプションです。 Flash Player 10 以降で使用できます。FMS への接続では、NetStream.CONNECT_TO_FMS に値を設定します。ピアーに直接パブリッシュするには、NetStream.DIRECT_CONNECTIONS を指定します。特定のピアーから直接再生するには、ピアーの識別子を指定します(NetConnection.nearID および NetConnection.farID を参照してください)。NetConnection.protocol プロパティの値は "rtmfp" である必要があります(peerID パラメータがピアーに設定されている場合)。RTMFP 以外の接続では、peerID パラメータは無視されます。パラメータとして、null 値が NetStream() メソッドに渡されると、プログラムによって、ActionScript がキャッチするために、デフォルト値の "connectToFMS" を peerID パラメータに使用します。
ただし、
new NetStream(nc:NetConnection);
|
ArgumentError — NetConnection インスタンスは接続されていません。
|
関連項目
videoURL に割り当てられたビデオを連続的にダウンロードし、表示する接続を示しています。
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_ns.play(videoURL);
var my_video:Video = new Video();
my_video.attachNetStream(my_ns);
addChild(my_video);videoURL に割り当てられた)ビデオを、connect() コマンドで指定されているリモート Flash Media Server インスタンスでストリーミングし、表示する接続を示しています。
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://www.yourfmsserver.com/someappname");
var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS);
my_ns.play(videoURL);
var my_video:Video = new Video();
my_video.attachNetStream(my_ns);
addChild(my_video);
| attachAudio | () | メソッド |
public function attachAudio(microphone:Microphone):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ソースとして渡される Microphone オブジェクトから NetStream オブジェクトを介して送信されるオーディオストリームを指定します。このメソッドは、指定されたストリームの発行者だけが使用できます。
attachAudio メソッドは、Flash Media Server で使用することを目的としています。このメソッドは、ユーザーがクライアントコンピュータからサーバーにライブオーディオ (またはオーディオ付きのライブビデオ) を送信するときに呼び出される場合があります。
このメソッドは、publish() メソッドを呼び出す前または後に呼び出すことができ、実際に送信を開始します。オーディオを聞きたいサブスクライバは NetStream.play() メソッドを呼び出す必要があります。マイクの rate をサウンドキャプチャデバイスのレートに合わせ、サイレンスレベルのしきい値を setSilenceLevel() メソッドを通じて設定します。マイクオブジェクトの soundTransform プロパティを使用して、このオーディオストリームのサウンドプロパティ(ボリュームとパン)を制御できます。
var conn:NetConnection = new NetConnection();
conn.connect("rtmp://server.domain.com/path");
var stream:NetStream = new NetStream(conn);
var live_mic:Microphone = Microphone.get();
live_mic.rate = 8;
live_mic.setSilenceLevel(20,200);
var soundTrans:SoundTransform = new SoundTransform();
soundTrans.volume = 6;
live_mic.soundTransform = soundTrans;
stream.attachAudio(live_mic);
stream.publish("mic_stream","live")
パラメータ
microphone:Microphone — 送信するオーディオストリームのソースです。
|
関連項目
| attachCamera | () | メソッド |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
カメラからビデオのキャプチャを開始します。または、theCamera が null に設定されると、キャプチャを停止します。このメソッドは、指定されたストリームの発行者だけが使用できます。
このメソッドは、Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
ビデオソースのアタッチ後に、NetStream.publish() を呼び出して転送を開始する必要があります。ビデオを表示したいサブスクライバは、NetStream.play() と Video.attachCamera() の各メソッドを呼び出して、ステージ上にビデオを表示する必要があります。
snapshotMilliseconds を使用して値 0 を指定すると、単一のスナップショットを送信できます。また、正の数を指定して、ビデオフィードに指定のミリ秒数のトレーラを追加すると、一連のスナップショット、つまり事実上のコマ落としビデオを送信することができます。 トレーラは、ビデオメッセージの表示時間を拡張します。attachCamera() を、snapshotMilliseconds に正の値を指定して繰り返し呼び出すと、スナップショットとトレーラが交互に繰り返されるシーケンスになり、コマ落としビデオが作成されます。例えば、毎日 1 フレームずつキャプチャして、ビデオファイルに追加することができます。サブスクライバがファイルを再生すると、各フレームが指定のミリ秒間画面上に表示され、その後、次のフレームが表示されます。
この snapshotMilliseconds パラメータの目的は、fps パラメータ (Camera.setMode() () で設定可能) とは異なります。snapshotMilliseconds は、記録されたフレーム間の経過時間を制御するために指定します。fps は、記録時と再生時の経過時間を制御するために Camera.setMode() を使用して指定します。
たとえば、5 分ごとにスナップショットを 1 枚撮り、合計で 100 枚のスナップショットを撮るとします。この操作を行うには、次の 2 つの方法があります。
NetStream.attachCamera(myCamera, 500) コマンドを 5 分に 1 回、合計 100 回実行できます。この場合、記録に 500 分かかりますが、生成されるファイルは 50 秒 (100 フレーム、各フレーム間 500 ミリ秒) で再生されます。Camera.setMode() コマンドを 1/300(300 秒ごとに 1 回、つまり 5 分に 1 回)の fps 値を指定して発行した後、NetStream.attachCamera(source) コマンドを発行して、カメラが 500 分間連続してキャプチャするように設定できます。生成されるファイルは、500 分、つまり記録に要した時間と同じ長さで再生され、各フレームは 5 分間表示されます。どちらの手法でも、同じ 500 個のフレームがキャプチャされます。どちらのアプローチも有用ですが、使用するアプローチは、主に再生要件によって異なります。例えば、後者の場合、始めから最後までオーディオを録音し続けることができます。また、どちらの場合もファイルサイズはほとんど同じです。
パラメータ
theCamera:Camera — ビデオ転送のソースです。有効な値は、ビデオのキャプチャを開始する Camera オブジェクトと null です。null を渡すと、ビデオのキャプチャが停止され、ユーザーが送信した追加パラメータはどれも無視されます。
| |
snapshotMilliseconds:int (default = -1) — ビデオストリームが連続的、単一のフレーム、コマ撮り写真の作成に使用する一連の単一フレームのいずれであるかを指定します。
|
| close | () | メソッド |
public function close():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ストリーム上のすべてのデータの再生を停止し、time プロパティを 0 に設定して、他のユーザーがストリームにアクセスできるようにします。また、このメソッドは、HTTP を使用してダウンロードされたビデオファイルのローカルコピーを削除します。アプリケーションでは、アプリケーションで作成したファイルのローカルコピーは削除されますが、コピーがキャッシュディレクトリに残る場合があります。ビデオファイルをキャッシュやローカル記憶域に一切残さないようにする必要がある場合には、Flash Media Server を使用してください。
Flash Media Server を使用している場合、パブリッシュしているストリームから NetStream.play() を呼び出すか、サブスクライブしているストリームから NetStream.publish() を呼び出すときに、このメソッドが暗黙的に呼び出されます。次の点に注意してください。
close() を呼び出すと、ストリームのパブリッシュが停止し、発行者は別の目的でストリームを使用できるようになります。ストリームのパブリッシュが停止するため、サブスクライバはストリームでパブリッシュされた内容を受信できなくなります。
close() を呼び出すと、サブスクライバに対するストリームの再生が停止し、サブスクライバは別の目的でストリームを使用できるようになります。他のサブスクライバの再生は停止しません。
flash.net.NetStream.play(false) ) を使用してストリームの種類を変更したりせずに、再生を停止できます。
関連項目
| onPeerConnect | () | メソッド |
public function onPeerConnect(subscriber:NetStream):Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ピアーがパブリッシュするストリームが、ピアーがサブスクライブするストリームに一致する場合に呼び出されます。サブスクライバが発行者に接続する前にこのメソッドを呼び出すと、ActionScript コードはピアーツーピアーパブリッシュに対するアクセスを細かく制御できます。次のコードは、このメソッドのコールバック関数の作成方法の例です。
var c:Object = new Object;
c.onPeerConnect = function(subscriber:NetStream):Boolean {
if (accept)
return true;
else
return false;
};
m_netStream.client = c;
ピアーの発行者がこのメソッドを実装していない場合、すべてのピアーはパブリッシュされたすべてのコンテンツを再生できます。
パラメータ
subscriber:NetStream |
Boolean |
| pause | () | メソッド |
public function pause():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ビデオストリームの再生を一時停止します。ビデオが既に一時停止している場合は、このメソッドを呼び出しても何も実行されません。ビデオを一時停止した後で再生を再開するには、resume() () を呼び出します。一時停止と再生を切り替えるには (最初にビデオを一時停止し、次に再開する)、togglePause() () を呼び出します。
Flash Player 9.0.115.0 以降、Flash Player では、NetStream.pause() が呼び出されたときにバッファをクリアしなくなりました。Flash Player 9.0.115.0 以前は、Flash Player はバッファが満杯になるまで待機してから再生を開始していましたが、このため遅延がよく発生していました。
1 回の一時停止の場合、NetStream.bufferLength プロパティには 60 秒または NetStream.bufferTime の値の 2 倍のうち、いずれか大きい方の値という制限があります。たとえば、bufferTime が 20 秒の場合、Flash Player は NetStream.bufferLength が 20*2 (40) または 60 のうち、大きい方の値になるまでバッファするため、この場合は、bufferLength が 60 秒になるまでバッファします。bufferTime が 40 秒の場合、Flash Player は bufferLength が 40*2 (80) または 60 のうち、大きい方の値になるまでバッファするため、この場合は、bufferLength が 80 秒になるまでバッファします。
bufferLength プロパティにも絶対制限があります。pause() への呼び出しによって、bufferLength が増加し 600 秒か bufferTime の値の 2 倍のうち高いほうを超えた場合、Flash Player はバッファをフラッシュし、bufferLength を 0 にリセットします。たとえば、bufferTime が 120 秒の場合は、bufferLength が 600 秒に達すると、Flash Player はバッファをフラッシュします。bufferTime が 360 秒の場合は、bufferLength が 720 秒に達すると、Flash Player はバッファをフラッシュします。
ヒント:例えば、コードで NetStream.pause() を使用し、閲覧者がコマーシャルを見ている間、データをバッファし、メインのビデオが開始されたときに一時停止を解除することができます。
関連項目
| play | () | メソッド |
public function play(... arguments):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
メディアファイルを再生します。
サポートされているコーデックおよびファイル形式については、、http://www.adobe.com/go/hardware_scaling_jp、および www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
ビデオデータを表示するには、Video オブジェクトを作成して、Video.attachNetStream() メソッドを呼び出します。マイクからオーディオをストリーミングするには、NetStream.attachAudio() メソッドを使用します。Microphone オブジェクトを使用すると、オーディオの一部の属性を制御できます。
DisplayObjectContainer.addChild() メソッドを呼び出して、表示リスト上のオブジェクトにオーディオをルーティングします。その後、Sound オブジェクトを作成して、オーディオの一部の属性を制御できます。詳細については、DisplayObjectContainer.addChild() メソッドを参照してください。
ビデオファイルが見つからない場合は、NetStatusEvent オブジェクトが送出されます。
Flash Media Server を使用しないでこのメソッドを使用する場合、セキュリティに関する考慮事項があります。信頼できるローカルのサンドボックスまたはネットワークアクセスを許可されたローカルのサンドボックスのファイルは、リモートサンドボックスからビデオファイルをロードおよび再生することができますが、URL ポリシーファイルで明示的な許可が与えられていない限り、リモートファイルのデータにアクセスできません。また、Flash Player で実行されている SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツが含まれる HTML ページの allowNetworking パラメータ (object タグおよび embed タグ) を設定します。
一般的な予約ポートには接続できません。ブロックされているポートの一覧については、セキュリティに関する章(『ActionScript 3.0 のプログラミング』)の「ネットワーク API の制限」を参照してください。
一般的な予約ポートには接続できません。ブロックされているポートの一覧については、セキュリティに関する章(『ActionScript 3.0 のプログラミング』)の「ネットワーク API の制限」を参照してください。
セキュリティ情報について詳しくは、以下を参照してください。
NetStream.checkPolicyFile プロパティ。パラメータ
... arguments — URLRequest.url プロパティまたは変数参照のいずれかのストリングとして再生するメディアファイルの位置です。アプリケーションセキュリティサンドボックス外にある Flash Player および AIR コンテンツの場合、SWF ファイルまたはサブディレクトリと同じディレクトリに保存されているローカルビデオファイルを再生できます。ただし、上位レベルのディレクトリに移動することはできません。
Flash Media Server では、
次の表に記載されているファイル形式を再生できます。構文は、ファイル形式によって異なります。
|
status: — DRM (デジタル著作権管理) で暗号化されたコンテンツを再生しようとしたときに送出されます。code プロパティの値は "DRM.encryptedFLV" です。 |
SecurityError — 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この制限は、この SWF ファイルを local-with-networking または trusted として分類し直すことで回避できます。
| |
ArgumentError — 少なくとも 1 つのパラメータを指定する必要があります。
| |
Error — NetStream オブジェクトが無効です。このエラーは、NetConnection の失敗によって発生する場合があります。
|
関連項目
play() メソッドでいずれかの拡張子を指定します。
ns.play("mp4:record1.f4v", 0, 100, true);
ns.play("stephen");
| play2 | () | メソッド |
public function play2(param:NetStreamPlayOptions):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
再生用の各オプションを設定のうえ、メディアファイルの再生を開始します。
このメソッドは、NetStream.play() () を拡張したものです。play() メソッドと同様に、play2() メソッドは、メディアファイルの再生を開始したり、メディアファイルをキューに追加して再生リストを作成したりします。Flash Media Server で使用する場合、サーバーに要求を出して別のメディアファイルに切り替えることもできます。切り替えはクライアントアプリケーションでシームレスに実行されます。
play2() メソッドを使用して、異なるビットレートでエンコードされたコンテンツが同じストリームに切り替えたり、再生リストのストリームを入れ替えたりします。ネットワークの状態を監視し、そのデータに基づいてストリームを切り替えるには、NetStreamInfo クラスを使用します。異なる機能のクライアント用のストリームを切り替えることもできます。ActionScript を使用してストリームを切り替えることは、ダイナミックストリーミングと呼ばれます。詳細については、www.adobe.com/go/learn_fms_devguide_jp にある『Adobe Flash Media Server Developer Guide』で「dynamic streaming」を検索してください。NetStream クラスを拡張する DynamicStream という名前のカスタム ActionScript が作成されています。DynamicStream クラスを使用すると、独自のコードを作成してネットワークの状態を検出しなくても、ダイナミックストリーミングを実装できます。ダイナミックストリーミングのコードを独自に作成する場合でも、動作する実装の例として DynamicStream クラスを参照してください。www.adobe.com/go/fms_tools_jp でクラスおよびクラスのドキュメントをダウンロードしてください。
パラメータ
param:NetStreamPlayOptions |
関連項目
| () | メソッド |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.5 |
ローカルに保存されたメディアファイルから任意の DRM メタデータを抽出します。
オフライン再生に必要な DRM バウチャーをダウンロードしてキャッシュする最初の手順として、preloadEmbeddedMetaData() を使用します。メディアファイルで埋め込み DRM メタデータが検出されると、DRMContentData オブジェクトが NetStream クライアントの onDRMContentData 関数に渡されます。この DRMContentData オブジェクトには、コンテンツの再生に必要なバウチャーを取得するために必要な情報が含まれます。バウチャーをダウンロードするには、DRMContentDataObject を DRMManager の loadVoucher() メソッドに渡します。
DRM バウチャーをプリロードする手順は次のとおりです。
メタデータをプリロードするための新しい NetStream オブジェクトを作成します。
onDRMContentData プロパティ(NetStream client)に割り当てます。streamName プロパティにローカルビデオファイルの URL ストリングを設定します。preloadEmbeddedMetadata() を呼び出して、NetStreamPlayOptions オブジェクトを渡します。onDRMContentData コールバックへの応答では、DRMManager の loadVoucher() メソッドを呼び出して、DRMContentData オブジェクトを渡します。DRMContentData オブジェクトの authenticationMethod プロパティの値が userNameAndPassWord の場合は、バウチャーをロードする前に、メディア著作権サーバーでユーザーを認証する必要があります。注意:同じ NetStream オブジェクトを使用して、メタデータのプリロードとコンテンツの再生を両方行う場合、再生開始前にプリロード処理によって生成された onPlayStatus 呼び出しを待機する必要があります。
ダウンロードされたバウチャーは、ローカルキャッシュに保存されます。コンテンツをオンラインで再生しても、バウチャーがダウンロードされてキャッシュされます。DRM で保護されたコンテンツファイルを表示するときは、キャッシュされたバウチャーがローカルストアから自動的に取得されます。バウチャーのキャッシュを管理するには、DRMManager を使用します。
メモ:HTTP、HTTPS、または RTMP 接続経由での DRM メタデータのプリロードはサポートされていません。メタデータは、ファイルシステムに格納されているファイルからのみプリロードできます。
パラメータ
param:NetStreamPlayOptions — コンテンツファイルの処理中に使用するオプションが記述されている NetStreamPlayOptions です。
|
関連項目
| publish | () | メソッド |
public function publish(name:String = null, type:String = null):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
クライアントから Flash Media Server へ、ストリーミングオーディオ、ビデオ、およびテキストメッセージを送信します。送信中にストリームを記録することもできます。このメソッドは、指定されたストリームの発行者だけが使用できます。
FLV 形式または MPEG-4 形式でファイルを記録できます。MPEG-4 形式でファイルを記録した場合、別のアプリケーションでファイルを編集または再生するには、flattener ツールを使用する必要があります。ツールをダウンロードするには、www.adobe.com/go/fms_tools_jp を参照してください。
すでにパブリッシュおよび記録されているストリームを再生するには、このメソッドを使用しないでください。ストリームを再生するには、NetStream.play() メソッドを使用します。
var subscribeNS:NetStream = new NetStream(myNetConnection);
subscribeNS.play("streamToPlay");
Flash Media Server は、ストリームを記録するとき、ファイルを作成して、サーバー上のアプリケーションのディレクトリのサブディレクトリに格納します。各ストリームは、NetConnection.connect() () に渡されたアプリケーションインスタンス名に一致する名前のディレクトリに格納されます。サーバーでは、これらのディレクトリが自動的に作成されます。たとえば、次のコードでは「lectureseries」アプリケーションに接続され、「ecture」と呼ばれるストリームが録音されます。lecture.flv ファイルは、applications/lectureseries/streams/_definst_ directory に録音されます。
var myNC:NetConnection = new NetConnection();
myNC.connect("rtmp://fms.example.com/lectureseries");
var myNS:NetStream = new NetStream(myNC);
myNS.publish("lecture", "record");
次の例では、同じアプリケーションの別のインスタンスに接続する方法を示しています。lecture.flv ファイルは、/applications/lectureseries/streams/monday ディレクトリに録音されます。
var myNC:NetConnection = new NetConnection();
myNC.connect("rtmp://fms.example.com/lectureseries/monday");
var myNS:NetStream = new NetStream(myNC);
myNS.publish("lecture", "record");
このメソッドは、NetStatusEvent オブジェクトを送出します。たとえば、指定した名前を持つストリームを誰かが既にパブリッシュしている場合、NetStatusEvent オブジェクトは code プロパティが "NetStream.Publish.BadName" で送出されます。詳しくは、NetStatusEvent オブジェクトを参照してください。
パラメータ
name:String (default = null) — ストリームを識別するストリングです。このストリームにサブスクライブしているクライアントは、NetStream.play() () を呼び出す場合に、この同じ名前を渡す必要があります。ストリーム名の後にスラッシュ (/) を指定しないでください。例えば、"bolero/" というストリーム名は使用しないでください。
次の表に記載されている形式のファイルをパブリッシュできます。構文は、ファイル形式によって異なります。
| |||||||||||||
type:String (default = null) — ストリームのパブリッシュ方法を指定するストリングです。有効な値は「record」、「append」、および「live」です。デフォルト値は "live" です。
|
関連項目
| receiveAudio | () | メソッド |
public function receiveAudio(flag:Boolean):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ストリーム上で着信オーディオが再生されるかどうかを示します。このメソッドは、指定されたストリームにサブスクライブされたクライアントでのみ使用できます。ストリームの発行者は使用できません。
このメソッドは、主に Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
このメソッドは、NetStream.play() メソッドを呼び出す前または呼び出した後に呼び出すことができ、実際にストリームの受信を開始します。例えば、着信オーディオストリームをミュートまたはミュート解除する場合、ユーザーがクリックするボタンにこれらのメソッドをアタッチできます。
指定のストリームにオーディオデータのみが含まれる場合、このメソッドに値 false を渡すと NetStream.time は増加しなくなります。
パラメータ
flag:Boolean — ストリーム上で着信オーディオを再生するかどうかを指定します。再生する場合は true、再生しない場合は false を指定します。デフォルト値は true です。
|
| receiveVideo | () | メソッド |
public function receiveVideo(flag:Boolean):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ストリーム上で着信ビデオが再生されるかどうかを指定します。このメソッドは、指定されたストリームにサブスクライブされたクライアントでのみ使用できます。ストリームの発行者は使用できません。
このメソッドは、主に Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
このメソッドは、NetStream.play() メソッドを呼び出す前または呼び出した後に呼び出すことができ、実際にストリームの受信を開始します。例えば、着信ビデオストリームを表示または非表示にする場合、ユーザーが押すボタンにこれらのメソッドをアタッチできます。
指定のストリームにビデオデータのみが含まれる場合、このメソッドに値 false を渡すと NetStream.time は増加しなくなります。
パラメータ
flag:Boolean — このストリーム上で着信ビデオを再生するかどうかを指定します。再生する場合は true、再生しない場合は false を指定します。デフォルト値は true です。
|
| receiveVideoFPS | () | メソッド |
public function receiveVideoFPS(FPS:Number):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
着信ビデオのフレームレートを指定します。このメソッドは、指定されたストリームにサブスクライブされたクライアントでのみ使用できます。ストリームの発行者は使用できません。
このメソッドは、主に Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
このメソッドは、NetStream.play() メソッドを呼び出す前または呼び出した後に呼び出すことができ、実際にストリームの受信を開始します。例えば、着信ビデオのフレームレートをユーザーが設定できるテキストフィールドにこれらのメソッドをアタッチできます。
ビデオの受信を停止するには、FPS に 0 を渡します。現在のフレームレートを確認するには、NetStream.currentFPS を使用します。
FPS パラメータに値を渡してビデオのフレームレートを制限すると、Flash Media Server は、ビデオの完全性を維持する一方で、フレームを減らそうとします。サーバーは、どの 2 つのキーフレーム間でも必要なレートを満たすことができる最小数のフレームを送信します。ただし、I フレーム(中間フレーム)は連続的に送信される必要があるので注意してください。そのようにしないと、ビデオは破損してしまいます。したがって、キーフレームに続いて、必要な数のフレームが直ちに連続的に送信されます。フレームは均等には配信されないので、待機により中断されたセグメントにおいてもモーションはスムーズに表示されます。
パラメータ
FPS:Number — 着信ビデオ再生時の 1 秒あたりのフレームレートを指定します。
|
| () | メソッド |
public static function resetDRMVouchers():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
ローカルにキャッシュされたすべてのDRM(デジタル著作権管理)バウチャーデータを削除します。
ユーザーが暗号化されたコンテンツにアクセスできるようにするには、アプリケーションでメディア著作権サーバーから必要なすべてのバウチャーを再ダウンロードする必要があります。この関数の呼び出しは、DRMManager オブジェクトの resetDRMVouchers() 関数の呼び出しと同じです。
IOError — 証明書データを削除できません。
|
関連項目
NetStream.resetDRMVouchers();
| resume | () | メソッド |
public function resume():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
再生を一時停止していたビデオストリームを再開します。ビデオが既に再生中である場合は、このメソッドを呼び出しても何も実行されません。
関連項目
| seek | () | メソッド |
public function seek(offset:Number):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定された位置に最も近いキーフレーム (ビデオ業界では I フレームとも呼ばれます) をシークします。キーフレームは、ストリームの先頭から秒単位のオフセット位置に配置されます。
通常、ビデオストリームは、キーフレーム (または I フレーム) と P フレームの 2 種類のフレームでエンコードされます。キーフレームにはイメージ全体が格納されています。一方、P フレームは、キーフレーム間の追加のビデオ情報を提供する中間フレームです。通常、ビデオストリームには 10 ~ 50 フレームごとにキーフレームがあります。
Flash Media Server では、seek() の動作は EnhancedSeek エレメントによって制御されます。このエレメントは、Application.xml 設定ファイルに定義されています。
EnhancedSeek が false の場合、サーバーは通常のシークモードを使用します。通常のシークモードでは、サーバーは最も近いキーフレームからストリーミングを開始します。例えば、ビデオの 0 秒と 10 秒の位置にキーフレームがある場合、4 秒の位置にシークすると、0 秒の位置のキーフレームを使用して 4 秒の位置から再生が開始されます。10 秒の位置にある次のキーフレームに到達するまで、ビデオはフリーズされたままになります。シークの操作性を向上するには、キーフレームの間隔を短くする必要があります。通常のシークモードでは、キーフレーム間の位置からビデオを開始することはできません。
EnhancedSeek がデフォルト値の true の場合、サーバーは前のキーフレームとすべての中間 P フレームに基づいて、offset に新しいキーフレームを生成します。ただし、これによりサーバーの処理の負荷が高くなり、生成されるキーフレームに歪みが発生することがあります。ビデオコーデックが On2 の場合、シーク位置の前のキーフレームと、そのキーフレームとシーク位置の間にあるすべての P フレームがクライアントに送信されます。
パラメータ
offset:Number — ビデオファイルにおける、再生ヘッドのおおよその移動時間 (秒単位) です。Flash Media Server で、Application.xml 設定ファイルの <EnhancedSeek> が true に設定されている場合(これがデフォルトの設定です)、サーバは offset にキーフレームを生成します。
|
関連項目
| send | () | メソッド |
public function send(handlerName:String, ... arguments):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
パブリッシュされたストリーム上で、サブスクライブしているすべてのクライアントにメッセージを送信します。このメソッドは、指定されたストリームの発行者だけが使用可能で、Flash Media Server で使用することを目的としています。このメッセージを処理して応答するには、NetStream オブジェクトにハンドラを作成します。このオブジェクトの例には、ns.HandlerName があります。
Flash Player または AIR は、メソッドやそれらのデータ、オブジェクトプロトタイプ変数、または列挙不可能な変数を直列化しません。表示オブジェクトの場合、Flash Player または AIR はパスを直列化しますが、データは直列化しません。
send() メソッドを呼び出し、Flash Media Server に送信するライブストリームにデータキーフレームを追加できます。データキーフレームは、発行者がライブストリームに追加するメッセージです。通常、データキーフレームは、カメラやマイクロホンからストリーム用のデータをキャプチャする前に、ライブストリームにメタデータを追加するために使用されます。発行者は、ライブストリームのパブリッシュ中にいつでもデータキーフレームを追加できます。発行者がサーバーに接続している限り、データキーフレームはサーバーのメモリに保存されます。
データキーフレームが追加される前のライブストリームにサブスクライブしているクライアントは、データキーフレームが追加されるとすぐにそのキーフレームを受信します。データキーフレームが追加された後のライブストリームにサブスクライブしているクライアントは、サブスクライブするときにキーフレームを受信します。
Flash Media Server に送信するライブストリームにメタデータのキーフレームを追加するには、次の例に示すように、@setDataFrame をハンドラ名として使用し、続いて 2 つの引数を指定します。
var ns:NetStream = new NetStream(nc);
ns.send("@setDataFrame", "onMetaData", metaData);
@setDataFrame 引数は、Flash Media Server に組み込まれている特別なハンドラを表します。onMetaData 引数は、onMetaData イベントを監視してメタデータを取得する、クライアントアプリケーションのコールバック関数の名前です。3 番目の metaData は、メタデータ値を定義したプロパティを持つ Object または Array のインスタンスです。発行者は、サブスクライバが簡単に理解できるプロパティ名を設定する必要があります。設定可能なプロパティ名のリストについては、Flash Media Server 開発者ガイドを参照してください。
@clearDataFrame を使用して、ストリームに設定されているメタデータのキーフレームを消去します。
ns.send("@clearDataFrame", "onMetaData");
パラメータ
handlerName:String — 送信されるメッセージです。メッセージを受け取る ActionScript ハンドラの名前でもあります。ハンドラ名の深さは 1 レベルのみで (つまり、親子形式を取ることができません)、ストリームオブジェクトに相対します。ハンドラ名には予約語を使用しないでください。たとえば、ハンドラ名として "close" を使用すると、このメソッドは失敗します。Flash Media Server で、@setDataFrame を使用してメタデータのキーフレームをライブストリームに追加したり、@clearDataFrame を使用してキーフレームを削除したりします。
| |
... arguments — オプションのパラメータで、任意のデータ型を指定できます。それらは直列化され、接続を介して送信されます。受信側のハンドラは同じ順番でそれらを受け取ります。パラメータが循環オブジェクト (循環するリンクされたリストなど) である場合、シリアライザは参照を正しく処理します。Flash Media Server で、@setDataFrame が最初の引数の場合、onMetaData を 2 番目の引数として使用します。3 番目の引数には、メタデータがプロパティとして設定された Object または Array のインスタンスを渡します。設定可能なプロパティ名のリストについては、Flash Media Server 開発者ガイドを参照してください。@clearDataFrame を最初の引数、onMetaData を 2 番目の引数として使用し、3 番目の引数はありません。
|
関連項目
NetStream オブジェクトを作成します。1 つのオブジェクトはサーバーへのライブストリームのパブリッシュに使用し、もう 1 つはストリームへのサブスクライブに使用します。
package {
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.utils.setTimeout;
public class TestExample extends Sprite
{
var nc:NetConnection = new NetConnection();
var ns1:NetStream;
var ns2:NetStream;
var vid:Video = new Video(300,300);
var obj:Object = new Object();
public function TestExample() {
nc.objectEncoding = 0;
nc.addEventListener("netStatus", onNCStatus);
nc.connect("rtmp://localhost/FlashVideoApp");
addChild(vid);
}
function onNCStatus(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetConnection.Connect.Success":
trace("You've connected successfully");
ns1 = new NetStream(nc);
ns2 = new NetStream(nc);
ns1.client = new CustomClient();
ns1.publish("dummy", "live");
ns2.play("dummy");
ns2.client = new CustomClient();
vid.attachNetStream(ns2);
setTimeout(sendHello, 3000);
break;
case "NetStream.Publish.BadName":
trace("Please check the name of the publishing stream" );
break;
}
}
function sendHello():void {
ns1.send("myFunction", "hello");
}
}
}
class CustomClient {
public function myFunction(event:String):void {
trace(event);
}
}
private function netStatusHandler(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetStream.Publish.Start":
var metaData:Object = new Object();
metaData.title = "myStream";
metaData.width = 400;
metaData.height = 200;
ns.send("@setDataFrame", "onMetaData", metaData);
ns.attachCamera( Camera.getCamera() );
ns.attachAudio( Microphone.getMicrophone() );
}
}onMetaData イベントハンドラを定義する必要があります。次の例では、onMetaData イベントハンドラは addEventListener() に登録されていませんが、代わりに onMetaData という名前のコールバック関数が登録されています。
public function onMetaData(info:Object):void {
trace("width: " + info.width);
trace("height: " + info.height);
}
// Create a NetStream for playing
var my_ns:NetStream = new NetStream(my_nc);
my_video.attachNetStream(my_ns);
// Play the stream record1
my_ns.play("record1", 0, -1, true);
// Switch to the stream live1 and play for 5 seconds.
// Since reset is false, live1 will start to play after record1 is done.
my_ns.play("live1", -1 , 5, false);
//To play at normal speed
var my_ns:NetStream = new NetStream(my_nc);
my_ns.play("log", 0, -1);
//To get the data messages all at once
my_ns.play("log", 0, -1, 3);| () | メソッド |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
基になる暗号化コンテンツを表示するために必要な DRM 認証資格情報を設定します。
setDRMAuthenticationCredentials() メソッドは、コンテンツプロバイダまたはプロキシサーバーに知られていて承認されている資格情報に一致する資格情報を提供する必要があります。これらは、ユーザーがコンテンツの表示許可を取得するときに使用する資格情報と同じものです。
パラメータ
userName:String — 有効なユーザー名情報。
| |
password:String — 指定したユーザー名に対応するパスワード情報。
| |
type:String — 指定する認証資格情報のタイプを指定するストリング。 有効な値は、"drm" および "proxy" です。デフォルト値は "drm" です。
|
関連項目
| togglePause | () | メソッド |
public function togglePause():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ストリームの再生を一時停止または再開します。このメソッドを呼び出すと最初は再生を一時停止し、次に呼び出したときには再生を再開します。このメソッドを使用して、ユーザーが 1 つのボタンを押すだけで再生を一時停止または再生できるようにすることができます。
関連項目
| asyncError | イベント |
flash.events.AsyncErrorEventflash.events.AsyncErrorEvent.ASYNC_ERROR| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。このイベントは、サーバーが定義されていないメソッドをクライアント上で呼び出したときに送出されます。
AsyncErrorEvent.ASYNC_ERROR 定数は、type プロパティ(asyncError イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | イベントを送出するオブジェクトです。 |
error | イベントをトリガしたエラーです。 |
関連項目
| イベント |
flash.events.DRMAuthenticateEventflash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
NetStream オブジェクトが、再生の前にユーザーの認証資格情報を要求する、DRM (デジタル著作権管理) で暗号化されたコンテンツを再生しようとしたときに送出されます。
NetStream オブジェクトの setDRMAuthenticationCredentials() メソッドを使用してユーザーを認証します。ユーザー認証に失敗した場合、認証が再試行され、NetStream オブジェクトの新しい DRMAuthenticateEvent イベントが送出されます。
DRMAuthenticateEvent.DRM_AUTHENTICATE 定数は、DRMAuthenticateEvent オブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
authenticationType | 提供された資格情報が、Flash Media Rights Management Server (FMRMS) とプロキシサーバーのいずれの認証用なのかを示します。 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
header | サーバーによって提供される暗号化コンテンツファイルのヘッダです。 |
netstream | このイベントを開始した NetStream オブジェクトです。 |
passwordPrompt | サーバーによって提供されるパスワード資格情報のプロンプトです。 |
target | NetStream オブジェクトです。 |
urlPrompt | サーバーによって提供される、表示する URL のプロンプトです。 |
usernamePrompt | サーバーによって提供されるユーザー名資格情報のプロンプトです。 |
関連項目
| イベント |
flash.events.DRMErrorEventflash.events.DRMErrorEvent.DRM_ERROR| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
NetStream オブジェクトが DRM (デジタル著作権管理) で暗号化されたファイルを再生しようとして、DRM に関連したエラーを検出したときに送出されます。例えば、DRMErrorEvent オブジェクトは、ユーザー承認に失敗したときに送出されます。これは、ユーザーがコンテンツを表示する権利を購入していないためや、コンテンツプロバイダが表示アプリケーションをサポートしていないためなどで発生します。
DRMErrorEvent.DRM_ERROR 定数は、type プロパティ(drmError イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
errorID | 問題に割り当てられている数値エラーコードです。 |
subErrorID | 基になるプログラムに関する詳細な情報を示すエラーコードです。 |
target | NetStream オブジェクトです。 |
関連項目
| イベント |
flash.events.DRMStatusEventflash.events.DRMStatusEvent.DRM_STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
DRM (デジタル著作権管理) で暗号化されたコンテンツの再生が開始されるときに送出されます (ユーザーが認証されてコンテンツの再生が許可された場合)。
DRMStatusEvent オブジェクトには、コンテンツをオフラインで使用可能にできるかどうか、またはいつ証明書が期限切れとなり、コンテンツを表示できなくなるかなど、証明書に関連する情報が含まれます。
DRMStatusEvent.DRM_STATUS 定数は、type プロパティ(drmStatus イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
detail | ステータスイベントのコンテキストを説明するストリングです。 |
isAnonymous | DRM 暗号化で保護されたコンテンツが認証資格情報をユーザーに要求することなく使用可能であるかどうかを示します。 |
isAvailableOffline | DRM 暗号化で保護されたコンテンツがオフラインで使用可能かどうかを示します。 |
offlineLeasePeriod | コンテンツをオフラインで表示できる残りの日数です。 |
policies | DRM ステータスイベントのカスタムオブジェクトです。 |
target | NetStream オブジェクトです。 |
voucherEndDate | バウチャーが期限切れとなり、ユーザーがコンテンツを表示できなくなる日の絶対日付です。 |
contentData | コンテンツの DRMContentData です。 |
voucher | コンテンツの DRMVoucher オブジェクトです。 |
isLocal | コンテンツがローカルファイルシステムに格納されるかどうかを示します。 |
関連項目
| ioError | イベント |
flash.events.IOErrorEventflash.events.IOErrorEvent.IO_ERROR| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
入出力エラーが発生してネットワーク処理が失敗したときに送出されます。
type プロパティ (ioError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
errorID | 特定のエラーに関連付けられた参照番号です(AIR のみ)。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
| netStatus | イベント |
flash.events.NetStatusEventflash.events.NetStatusEvent.NET_STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
NetStream オブジェクトが、そのステータスまたはエラーの状態をレポートすると送出されます。netStatus イベントには、info プロパティが含まれます。このプロパティは、接続試行が成功したかどうかなど、イベントに関する特定の情報を含む情報オブジェクトです。
type プロパティ (netStatus イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
info | オブジェクトのステータスまたはエラー状態を記述するプロパティを持つオブジェクトです。 |
target | そのステータスを報告する NetConnection または NetStream オブジェクトです。 |
関連項目
| onCuePoint | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ビデオファイルの再生中に埋め込まれたキューポイントに達した場合に応答するリスナーを定義します。このリスナーを使用して、ビデオが特定のキューポイントに達したときにコード内のアクションをトリガすることができます。これにより、アプリケーションの他のアクションとビデオ再生イベントと同期させることができます。Flash Media Server でサポートされるビデオ形式については、www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
onCuePoint は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。詳しくは、NetStream クラスの説明を参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onCuePoint をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。関連付けられたイベントリスナーは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
ビデオファイルに埋め込み可能なキューポイントには、次のタイプがあります。
time プロパティを指定します。ナビゲーションキューポイントは、ビデオファイル内の移動に使用できるブックマークやエントリポイントとしてよく使われます。onCuePoint イベントオブジェクトには、次のプロパティが含まれます。
| プロパティ | 説明 |
|---|---|
name | キューポイントがビデオファイル内に埋め込まれたときに、キューポイントに指定された名前です。 |
parameters | このキューポイントに指定された名前と値のペアのストリングの結合配列です。パラメータ名または値には、任意の有効なストリングを使用できます。 |
time | ビデオファイルの再生時にキューポイントが発生した時間 (秒数) です。 |
type | 到達したキューポイントの種類です。ナビゲーションまたはイベントのいずれかです。 |
最初にビデオファイルをエンコードするとき、または Flash オーサリングツールでビデオの読み込みウィザードを使用してビデオクリップを読み込むときに、ビデオファイルにキューポイントを定義できます。
onMetaData イベントも、ビデオファイル内のキューポイントに関する情報を取得します。ただし、onMetaData イベントは、ビデオの再生が開始される前に、すべてのキューポイントに関する情報を取得します。onCuePoint イベントは、1 つのキューポイントについて、再生時のそのキューポイントに指定された時間での情報を取得します。
一般に、コードで特定のキューポイントの発生時に応答するには、onCuePoint イベントを使用して、コード内の特定のアクションをトリガします。
onMetaData イベントに指定されたキューポイントのリストを使用すると、ビデオストリームの事前に定義されたポイントでユーザーにビデオの再生を開始させることができます。キューポイントの time プロパティの値を NetStream.seek() メソッドに渡して、そのキューポイントからビデオを再生します。
関連項目
| イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.5 |
AIR がメディアファイルに埋め込まれた DRM コンテンツメタデータを抽出する場合に、応答するリスナーを確立します。
DRMContentData オブジェクトには、DRM で保護されたメディアファイルの再生に必要なバウチャーを取得するために必要な情報が含まれます。この情報を使用してバウチャーをダウンロードするには、DRMManager クラスを使用します。
onDRMContentData は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、ローカルメディアファイルから埋め込みデータをプリロードするときにデータイベントに応答するので、Events セクションに記載されます。詳しくは、NetStream クラスの説明を参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onDRMContentData をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。関連項目
| onImageData | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
再生中のメディアファイルにバイト配列として埋め込まれているイメージデータを Flash Player が受け取ったときに応答するリスナーを定義します。イメージデータは、JPEG、PNG または GIF のいずれかのコンテンツを作成できます。表示オブジェクトにバイト配列を読み込むには、flash.display.Loader.loadBytes() メソッドを使用します。
onImageData は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。詳しくは、NetStream クラスの説明を参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onImageData をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。関連付けられたイベントリスナーは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
onImageData イベントオブジェクトは、イメージデータを AMF0 データチャンネルを介して送信されるバイト配列として格納します。
Netstream.client プロパティを使用して、onTextData および onImageData のコールバック関数を処理しています。onImageDataHandler() 関数は、onImageData イベントオブジェクト imageData を使用してバイト配列を格納します。また、onTextDataHandler() 関数は onTextData イベントオブジェクト textData を使用してテキストデータを格納します(各データは textData オブジェクトのプロパティです)。
コード内の "yourURL" を、テキストまたはイメージメタデータを含むメディアファイルの実際の場所に置き換える必要があります。
カスタムクラスを使用してイメージおよびテキストデータを処理することもできます。詳細および例については、記事「Handling metadata and cue points in Flash video」を参照してください。
package {
import flash.display.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.events.*;
public class OnTextDataExample extends Sprite {
public function OnTextDataExample():void {
var customClient:Object = new Object();
customClient.onImageData = onImageDataHandler;
customClient.onTextData = onTextDataHandler;
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_ns.play("yourURL");
my_ns.client = customClient;
var my_video:Video = new Video();
my_video.attachNetStream(my_ns);
addChild(my_video);
}
public function onImageDataHandler(imageData:Object):void {
trace("imageData length: " + imageData.data.length);
var imageloader:Loader = new Loader();
imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object.
addChild(imageloader);
}
public function onTextDataHandler(textData:Object):void {
trace("--- textData properties ----");
var key:String;
for (key in textData) {
trace(key + ": " + textData[key]);
}
}
}
}
関連項目
| onMetaData | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
再生中のビデオに埋め込まれた記述的情報を Flash Player が受け取ったときに応答するリスナーを定義します。Flash Media Server でサポートされるビデオ形式については、www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
onMetaData は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。NetStream クラスの説明について詳しくは、NetStream.client プロパティを参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onMetaData をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。Flash Video Exporter ユーティリティ (バージョン 1.1 以降) は、ビデオの継続時間、作成日付、データレート、その他の情報をビデオファイルに埋め込みます。各ビデオエンコーダは、それぞれ異なるメタデータのセットを埋め込みます。
関連付けられたイベントリスナーは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
多くの場合、ストリームメタデータに埋め込まれた継続期間の値は実際の継続時間に近似したものになりますが、正確な値ではありません。つまり、再生ヘッドがビデオストリームの末尾にある場合、FLV メタデータに埋め込まれた継続期間の値は NetStream.time プロパティの値と必ずしも一致するわけではありません。
onMetaData イベントハンドラに渡されるイベントオブジェクトには、各データに 1 つのプロパティが含まれています。
関連項目
| onPlayStatus | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
NetStream オブジェクトによるストリームの再生が終了した場合に応答するリスナーを定義します。関連付けられたイベントオブジェクトは、netStatus イベントによって返される内容に加えて情報を提供します。このプロパティを使用すると、NetStream オブジェクトが再生リスト内のストリームを切り替えたとき(情報オブジェクト NetStream.Play.Switch で示される)、または NetStream オブジェクトが終わりまで再生したときに(情報オブジェクト NetStream.Play.Complete で示される)、コード内のアクションをトリガできます。
onPlayStaus は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。詳しくは、NetStream クラスの説明を参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onPlayStatus をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。このイベントでは、次のプロパティが指定された情報オブジェクトを返すことができます。
| code プロパティ | level プロパティ | 説明 |
|---|---|---|
NetStream.Play.Switch | "status" | サブスクライバが、再生リストでストリームを切り替えています。 |
NetStream.Play.Complete | "status" | 再生が終了しました。 |
NetStream.Play.TransitionComplete | "status" | ストリームのビットレートを切り替えた結果、サブスクライバは新しいストリームに切り替えています。 |
関連項目
| onTextData | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.115.0 |
Flash Player が再生中のメディアファイルに埋め込まれたテキストデータを受信したときに応答するリスナーを定義します。テキストデータは UTF-8 形式で、3GP timed text 仕様に基づいて形式に関する情報を含めることができます。
onTextData は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。詳しくは、NetStream クラスの説明を参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onTextData をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。関連付けられたイベントリスナーは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
onTextData イベントオブジェクトには、テキストデータごとに 1 つのプロパティが含まれます。
Netstream.client プロパティを使用して、onTextData および onImageData のコールバック関数を処理しています。onImageDataHandler() 関数は、onImageData イベントオブジェクト imageData を使用してバイト配列を格納します。また、onTextDataHandler() 関数は onTextData イベントオブジェクト textData を使用してテキストデータを格納します(各データは textData オブジェクトのプロパティです)。
コード内の "yourURL" を、テキストまたはイメージメタデータを含むメディアファイルの実際の場所に置き換える必要があります。
カスタムクラスを使用してイメージおよびテキストデータを処理することもできます。詳細および例については、記事「Handling metadata and cue points in Flash video」を参照してください。
package {
import flash.display.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.events.*;
public class OnTextDataExample extends Sprite {
public function OnTextDataExample():void {
var customClient:Object = new Object();
customClient.onImageData = onImageDataHandler;
customClient.onTextData = onTextDataHandler;
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_ns.play("yourURL");
my_ns.client = customClient;
var my_video:Video = new Video();
my_video.attachNetStream(my_ns);
addChild(my_video);
}
public function onImageDataHandler(imageData:Object):void {
trace("imageData length: " + imageData.data.length);
var imageloader:Loader = new Loader();
imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object.
addChild(imageloader);
}
public function onTextDataHandler(textData:Object):void {
trace("--- textData properties ----");
var key:String;
for (key in textData) {
trace(key + ": " + textData[key]);
}
}
}
}
関連項目
| onXMPData | イベント |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
再生中のビデオに埋め込まれている Adobe Extensible Metadata Platform(XMP)独自の情報を Flash Player が受け取ったときに応答するリスナーを定義します。Flash Media Server でサポートされるビデオ形式については、www.adobe.com/go/learn_fms_fileformats_jp を参照してください。
onXMPData は、実際は NetStream.client オブジェクトのプロパティです。イベントではありませんが、Flash Media Server を使用したメディアのストリーミング時または FLV ファイルの再生中にデータイベントに応答するので、Events セクションに記載されます。NetStream クラスの説明について詳しくは、NetStream.client プロパティを参照してください。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、onMetaData をイベントとして受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。関連付けられたイベントリスナーは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
onXMPData() イベント処理機能に渡されるオブジェクトは、1 つのdataデータプロパティ(ストリング)を持ちます。このストリングは最上位の UUID ボックスから生成されます(最上位ボックスの 128 ビット UUID は BE7ACFCB-97A9-42E8-9C71-999491E3AFAC)。この最上位 UUID ボックスには、null を持たない UTF-8 ストリングとして表される XML ドキュメントが 1 つだけ含まれます。
関連項目
| イベント |
flash.events.StatusEventflash.events.StatusEvent.STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
アプリケーションが NetStream.play() メソッドを呼び出して DRM(デジタル著作権管理)で暗号化されたコンテンツを再生しようとしたときに送出されます。ステータスコードプロパティの値は "DRM.encryptedFLV" です。
type プロパティ (status イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
code | オブジェクトのステータスの説明です。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
level | "status"、"warning"、"error" など、メッセージのカテゴリです。 |
target | そのステータスをレポートするオブジェクトです。 |
関連項目
| CONNECT_TO_FMS | 定数 |
public static const CONNECT_TO_FMS:String = "connectToFMS"| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
NetStream インスタンスのコンストラクタに対するパラメータとして使用される静的オブジェクト。これは NetStream コントラクタの 2 番目のパラメータのデフォルト値です。アプリケーションが使用してメディアをプログレッシブ再生することはありません。このパラメータを使用すると、コントラクタが Flash Media Server インスタンスに接続します。
| DIRECT_CONNECTIONS | 定数 |
public static const DIRECT_CONNECTIONS:String = "directConnections"| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ピアーツーピアーの発行者接続を作成します。2 番目の(オプション)パラメータのこのストリングを、NetStream インスタンスのコンストラクタに渡します。アプリケーションはこのストリングを使用して、クライアントにオーディオおよびビデオをパブリッシュするための NetStream 接続を作成します。
videoURL に渡される変数と、ファイル名および場所が一致する FLV ファイルが必要です。この場合は、SWF ファイルと同じディレクトリにある Video.flv という名前の FLV ファイルです。
この例では、Video オブジェクトと NetStream オブジェクトを作成し、Video.attachNetStream() メソッドと NetStream.play() メソッドを呼び出すコードがハンドラ関数に配置されます。ハンドラは、NetConnection オブジェクトとの接続が成功した場合にのみ呼び出されます。つまり、netStatus イベントが返す info オブジェクトの code プロパティが成功を示しているときです。接続に成功するまで待ってから、NetStream.play() () を呼び出すことをお勧めします。
package {
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
public class NetConnectionExample extends Sprite {
private var videoURL:String = "Video.flv";
private var connection:NetConnection;
private var stream:NetStream;
public function NetConnectionExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect(null);
}
private function netStatusHandler(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
trace("Stream not found: " + videoURL);
break;
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function connectStream():void {
var stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.client = new CustomClient();
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL);
addChild(video);
}
}
}
class CustomClient {
public function onMetaData(info:Object):void {
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void {
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/net/NetStream.html