| パッケージ | flash.net |
| クラス | public class NetStream |
| 継承 | NetStream EventDispatcher Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
NetStream.publish() を使用してストリームをパブリッシュするか、NetStream.play() を使用して、パブリッシュされたストリームにサブスクライブし、データを受信できます。ライブ (リアルタイム) データおよび以前に記録したデータをパブリッシュすることも、再生することもできます。NetStream オブジェクトを使用して、サブスクライブしているすべてのクライアントにテキストメッセージを送信することもできます。NetStream.send() メソッドを参照してください。
Flash ドキュメント内にビデオを埋め込むよりも、外部のビデオファイルを再生した方が、パフォーマンスとメモリ管理の効率がよくなる、ビデオと Flash のフレームレートを独立化できるなどのメリットがあります。
サポートされるコーデックとファイル形式の詳細については、http://www.adobe.com/go/hardware_scaling_en および Flash Media Server のマニュアルを参照してください。NetStream クラスには、ファイルのロードおよび再生時にその進捗を追跡し、ユーザーが再生を制御 (停止、一時停止など) できるようにするための、さまざまなメソッドおよびプロパティが用意されています。
ストリーミングオーディオまたはビデオの一般的なワークフロー。 次の手順は、リアルタイムにオーディオおよびビデオをパブリッシュするワークフローの概要を示しています。
NetConnection.connect() メソッドを使用して、サーバー上のアプリケーションインスタンスに接続します。NetStream.attachAudio() メソッドを使用してストリームを介したオーディオのキャプチャおよび送信を行い、NetStream.attachCamera() メソッドを使用してビデオのキャプチャおよび送信を行います。NetStream.publish() メソッドを使用して、ストリームに一意の名前を付けます。また、ストリームを介してサーバーにデータを送信します。これにより、他のユーザーがデータを受信できるようになります。データをパブリッシュしたときに、そのデータを記録することもできます。これにより、後でデータを再生することができます。ストリームにサブスクライブする SWF ファイルでは、publish() に渡された名前を、play() を呼び出すときに使用します。また、発行者と同じ NetConnection.connect() メソッドを呼び出します。ビデオをストリーミングするには、Video.attachNetStream() メソッドを呼び出す必要があります。また、ビデオを再生するには、NetStream.play() メソッドを呼び出す必要があります。
Flash Media Server でのデータキーフレームの使用。 NetConnection オブジェクトと NetStream オブジェクトを作成した後、オーディオまたはビデオをサーバーにストリーミングするときに、NetStream.send() を使用してライブのオーディオまたはビデオにメタデータを追加できます。メタデータには、ビデオの高さまたは幅、ビデオの継続時間、作成者の名前などの情報を設定できます。メタデータを定義するには、特別なハンドラ名 @setDataFrame を、NetStream.send() に渡す最初の引数として使用します。ライブストリームを受信するクライアントも onMetaData イベントハンドラを定義して、ストリームからメタデータを取得する必要があります。詳細については、NetStream.send() メソッドを参照してください。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| bufferLength : Number
[read-only]
バッファにデータが格納されてからの経過秒数です。
| NetStream | ||
| bufferTime : Number
ストリームの表示を開始するまでにメッセージをどの程度の時間バッファリングしておくかを指定します。
| NetStream | ||
| bytesLoaded : uint
[read-only]
既に Flash Player にロードされているデータのバイト数です。
| NetStream | ||
| bytesTotal : uint
[read-only]
Flash Player にロードされるファイルの総バイト数です。
| NetStream | ||
| checkPolicyFile : Boolean
ビデオファイルのロードを開始する前に、Flash Player が、ロードされるビデオファイルのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。
| NetStream | ||
| client : Object
コールバックメソッドを呼び出すオブジェクトを指定します。
| NetStream | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| currentFPS : Number
[read-only]
1 秒あたりの表示フレーム数です。
| NetStream | ||
| liveDelay : Number
[read-only]
ライブ (バッファリングされていない) モードでサブスクライブしているストリームバッファ内にあるデータの秒数です。
| NetStream | ||
| objectEncoding : uint
[read-only]
この NetStream オブジェクトのエンコード (AMF バージョン) です。
| NetStream | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| soundTransform : SoundTransform
この NetStream オブジェクトのサウンドを制御します。
| NetStream | ||
| time : Number
[read-only]
再生ヘッドの位置 (秒単位) です。
| NetStream | ||
| メソッド | 定義元 | ||
|---|---|---|---|
|
NetStream(connection:NetConnection)
指定された 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 | ||
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
|
クライアントから Flash Media Server へ、ストリーミングオーディオ、ビデオ、およびテキストメッセージを送信します。送信中にストリームを記録することもできます。
| NetStream | ||
|
ストリーム上で着信オーディオが再生されるかどうかを示します。
| NetStream | ||
|
ストリーム上で着信ビデオが再生されるかどうかを示します。
| NetStream | ||
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
|
再生を一時停止していたビデオストリームを再開します。
| NetStream | ||
|
指定された位置に最も近いキーフレーム (ビデオ業界では I フレームとも呼ばれます) をシークします。
| NetStream | ||
|
パブリッシュされたストリーム上で、サブスクライブしているすべてのクライアントにメッセージを送信します。
| NetStream | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
|
ストリームの再生を一時停止または再開します。
| NetStream | ||
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| 非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。 | NetStream | |||
![]() | Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| 入出力エラーが発生してネットワーク処理が失敗したときに送出されます。 | NetStream | |||
| NetStream オブジェクトが、そのステータスまたはエラーの状態をレポートすると送出されます。 | NetStream | |||
| ビデオファイルの再生中に、埋め込みキューポイントに達すると呼び出されます。 | NetStream | |||
| 再生中のビデオファイルに埋め込まれている説明情報を Flash Player が受け取ったときに送出されます。 | NetStream | |||
| NetStream オブジェクトによるストリームの再生が終了したときに送出されます。 | NetStream | |||
| bufferLength | プロパティ |
bufferLength:Number [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
バッファにデータが格納されてからの経過秒数です。このプロパティを bufferTime プロパティと組み合わせることにより、バッファが満たされるまでの時間を見積もることができます。それを基に、たとえば、バッファにデータがロードされるのを待っているユーザーにフィードバック情報を表示できます。
public function get bufferLength():Number
関連項目
| bufferTime | プロパティ |
bufferTime:Number [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリームの表示を開始するまでにメッセージをどの程度の時間バッファリングしておくかを指定します。たとえば、ストリームの最初の 15 秒間を中断することなく再生するには、bufferTime を 15 に設定します。こうすると、Flash Player は 15 秒間分のデータをバッファリングしてからストリームの再生を開始します。
デフォルト値は 0.1 (1/10 秒) です。バッファ内のデータの経過秒数を調べるには、bufferLength プロパティを使用します。
メモ : 記録されている (ライブではない) コンテンツをストリーミングするときの歪みを避けるには、Netstream.bufferTime の値を 0 に設定しないようにします。記録されているコンテンツの場合、デフォルトでは入力バッファが使用され、メディアデータがキューに置かれてメディアが適切に再生されます。記録されているコンテンツには、デフォルト値を使用するか、バッファ時間を延長します。
Flash Media Server。バッファの動作は、パブリッシュするストリームまたはサブスクライブするストリームにバッファ時間が設定されているかどうかによって異なります。パブリッシュするストリームの場合、bufferTime には、送信バッファに蓄積されたフレームの送信を開始するまでの時間の長さを指定します。高速な接続の場合は、バッファ時間を考慮する必要はありません。データは Flash がバッファリングすると即座に送信されます。一方、低速な接続では、Flash がデータをバッファリングする速度とそのデータをクライアントに送信する速度が大幅に異なることがあります。
サブスクライブするストリームの場合、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 [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
既に Flash Player にロードされているデータのバイト数です。このプロパティを bytesTotal プロパティと組み合わせることにより、バッファが満たされるまでの時間を見積もることができます。それを基に、たとえば、バッファにデータがロードされるのを待っているユーザーにフィードバック情報を表示できます。
public function get bytesLoaded():uint
関連項目
| bytesTotal | プロパティ |
bytesTotal:uint [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
Flash Player にロードされるファイルの総バイト数です。
public function get bytesTotal():uint
関連項目
| checkPolicyFile | プロパティ |
checkPolicyFile:Boolean [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビデオファイルのロードを開始する前に、Flash Player が、ロードされるビデオファイルのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。このプロパティは、プログレッシブビデオダウンロードに NetStream オブジェクト (スタンドアローンファイル) を使用する場合、または呼び出し元の SWF ファイルの専用ドメイン外にあるファイルをロードする場合に適用します。このプロパティは、NetStream オブジェクトを使用して RTMP アセットを取得する場合には無視されます。
このプロパティを true に設定すると、呼び出し元の SWF ファイルのドメイン外からビデオファイルをロードし、BitmapData.draw() メソッドを使用してビデオにピクセルレベルでアクセスすることができます。ロード時に BitmapData.draw() を呼び出すときに checkPolicyFile プロパティを true に設定していないと、SecurityError 例外を受け取る場合があります。これは、必要なポリシーファイルがダウンロードされていないためです。
ロードするビデオへのピクセルレベルのアクセスが必要ない場合は、checkPolicyFile を true に設定しないようにしてください。ポリシーファイルの確認はネットワーク帯域幅の浪費になり、ダウンロードの開始が遅れる場合があります。
NetStream.play() メソッドを呼び出すときに checkPolicyFile の設定が true になっていると、該当するクロスドメインポリシーファイルが正常にダウンロードされるか、NetStream.play() の呼び出しで指定したオブジェクトのダウンロードが開始される前にそのようなポリシーファイルが存在しないことが判別されるか、いずれかになります。ポリシーファイルの存在を確認するため、Flash Player は次のアクションをこの順番で実行します。
Security.loadPolicyFile() メソッドの呼び出しで指定された保留中ポリシーファイルをダウンロードしようとします。NetStream.play() に渡された URL に対応するデフォルトの場所からポリシーファイルをダウンロードしようとします。その URL と同じサーバー上の /crossdomain.xml がデフォルトの場所です。どのような場合でも、Flash Player でビデオを再生するためには、(1) 適切なポリシーファイルがビデオのサーバー上に存在すること、(2) play() で指定されている URL にあるオブジェクトが、ポリシーファイルの場所から判断してアクセス可能な場所にあるオブジェクトであること、(3) 呼び出し元 SWF ファイルのドメインからそのビデオへのアクセスが 1 つまたは複数の <allow-access-from> タグによって許可されていることという 3 つの条件が満たされていなければなりません。
checkPolicyFile を true に設定した場合、Flash Player はビデオをダウンロードする前に、ポリシーファイルが検証されるまで待機します。BitmapData.draw() の呼び出しなど、ビデオデータに対するピクセルレベルの操作は、NetStream オブジェクトから onMetaData イベントまたは NetStatus イベントを受け取るまで実行を待つ必要があります。
checkPolicyFile を true に設定したが関連ポリシーファイルが見つからない場合、エラーになって SecurityError 例外がスローされるのは、ポリシーファイルを必要とする操作を実行してからです。
サーバーサイド HTTP リダイレクトを使用する URL からファイルをダウンロードする場合は、checkPolicyFile に注意してください。Flash Player は、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 [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
コールバックメソッドを呼び出すオブジェクトを指定します。デフォルトのオブジェクトは、作成される NetStream オブジェクト this です。client プロパティを別のオブジェクトに設定すると、コールバックメソッドはその別のオブジェクトで呼び出されます。
public function get client():Object
public function set client(value:Object):void
TypeError — client プロパティは、null 以外のオブジェクトに設定する必要があります。
|
| currentFPS | プロパティ |
currentFPS:Number [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
1 秒あたりの表示フレーム数です。複数のシステム上で再生できるようにビデオファイルを書き出す場合、テスト中にこの値をチェックすることで、ファイルの書き出し時にどの程度の圧縮が必要かを見極めることができます。
public function get currentFPS():Number
| liveDelay | プロパティ |
liveDelay:Number [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ライブ (バッファリングされていない) モードでサブスクライブしているストリームバッファ内にあるデータの秒数です。このプロパティは、現在のネットワーク転送が遅延していることを示します (遅延時間)。
このプロパティは、主に Flash Media Server などのサーバーで使用することを目的としています。詳細については、クラスの説明を参照してください。
このプロパティの値を取得して、ストリームの転送品質を大まかに判断し、それをユーザーに伝えることができます。
public function get liveDelay():Number
| objectEncoding | プロパティ |
objectEncoding:uint [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
この NetStream オブジェクトのエンコード (AMF バージョン) です。NetStream オブジェクトは、関連付けされた NetConnection オブジェクトからその objectEncoding 値を継承します。ActionScript 3.0 SWF ファイルで Flash Player 9 以前にリリースされたサーバーと通信する必要がある場合は、このプロパティを理解することが重要です。詳細については、NetConnection クラスの objectEncoding プロパティの説明を参照してください。
このプロパティの値は、ローカルストリームかリモートストリームかによって異なります。null が NetConnection.connect() メソッドに渡されたローカルストリームでは、NetConnection.defaultObjectEncoding の値が返されます。リモートストリームでは、サーバーに接続されており、このサーバーとの接続のオブジェクトエンコーディングが返されます。
接続されていない場合にこのプロパティを読み取ろうとするか、このプロパティを変更しようとすると、Flash Player により例外がスローされます。
public function get objectEncoding():uint
関連項目
| soundTransform | プロパティ |
soundTransform:SoundTransform [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
この NetStream オブジェクトのサウンドを制御します。詳細については、SoundTransform クラスを参照してください。
public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
関連項目
| time | プロパティ |
time:Number [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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)
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
指定された NetConnection オブジェクトを使用して、ビデオファイルを再生するためのストリームを生成します。
サポートされるコーデックとファイル形式の詳細については、http://www.adobe.com/go/hardware_scaling_en および Flash Media Server のマニュアルを参照してください。
パラメータconnection:NetConnection — NetConnection オブジェクトです。
|
ArgumentError — NetConnection インスタンスは接続されていません。
|
関連項目
| attachAudio | () | メソッド |
public function attachAudio(microphone:Microphone):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ソースとして渡される Microphone オブジェクトから NetStream オブジェクトを介して送信されるオーディオストリームを指定します。このメソッドは、指定されたストリームの発行者だけが使用できます。
attachAudio メソッドは、Flash Media Server で使用することを目的としています。このメソッドは、ユーザーがクライアントコンピュータからサーバーにライブオーディオ (またはオーディオ付きのライブビデオ) を送信するときに呼び出される場合があります。
このメソッドは、publish() メソッドを呼び出す前または後に呼び出すことができ、実際に送信を開始します。オーディオを聞きたいサブスクライバは NetStream.play() メソッドを呼び出す必要があります。指定の Microphone オブジェクトの soundTransform プロパティを使用して、このオーディオストリームのサウンドプロパティを制御できます。
パラメータ
microphone:Microphone — 送信するオーディオストリームのソースです。
|
関連項目
| attachCamera | () | メソッド |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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() コマンドを、fps に 1/300 (300 秒ごとに 1 回、つまり 5 分に 1 回) の値を指定して発行してから NetStream.attachCamera(source) コマンドを発行すると、カメラは 500 分間連続してキャプチャするようになります。結果のファイルは 500 分、つまり記録に要した時間と同じ長さで再生され、各フレームは 5 分間表示されます。どちらの手法でも、同じ 500 個のフレームがキャプチャされます。どちらのアプローチも有用ですが、使用するアプローチは、主に再生要件によって異なります。たとえば、後者の場合、始めから最後までオーディオを録音し続けることができます。また、どちらの場合もファイルサイズはほとんど同じです。
パラメータ
theCamera:Camera — ビデオ転送のソースです。有効な値は、ビデオのキャプチャを開始する Camera オブジェクトと null です。null を渡すと、Flash Player はビデオのキャプチャを停止し、ユーザーが送信した追加パラメータはどれも無視されます。
|
|
snapshotMilliseconds:int (default = -1) — ビデオストリームが連続的か、単一のフレームか、コマ撮り写真の作成に使用する一連の単一フレームかを指定します。
|
| close | () | メソッド |
public function close():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリーム上のすべてのデータの再生を停止し、time プロパティを 0 に設定して、他のユーザーがストリームにアクセスできるようにします。また、このメソッドは、HTTP を使用してダウンロードされたビデオファイルのローカルコピーを削除します。Flash Player では、Flash Player で作成したファイルのローカルコピーは削除されますが、コピーがブラウザのキャッシュディレクトリに残る場合があります。ビデオファイルをキャッシュやローカル記憶域に一切残さないようにする必要がある場合には、Flash Media Server を使用してください。
Flash Media Server を使用している場合、パブリッシュしているストリームから NetStream.play() を呼び出すか、サブスクライブしているストリームから NetStream.publish() を呼び出すときに、このメソッドが暗黙的に呼び出されます。次の点に注意してください。
close() を呼び出すと、ストリームのパブリッシュが停止し、発行者は別の目的でストリームを使用できるようになります。ストリームのパブリッシュが停止するため、サブスクライバはストリームでパブリッシュされた内容を受信できなくなります。
close() を呼び出すと、サブスクライバに対するストリームの再生が停止し、サブスクライバは別の目的でストリームを使用できるようになります。他のサブスクライバの再生は停止しません。
flash.net.NetStream.play(false) を使用してストリームの種類を変更したりせずに、再生を停止できます。
関連項目
| pause | () | メソッド |
public function pause():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビデオストリームの再生を一時停止します。ビデオが既に一時停止している場合は、このメソッドを呼び出しても何も実行されません。ビデオを一時停止した後で再生を再開するには、resume() を呼び出します。一時停止と再生を切り替えるには (最初にビデオを一時停止し、次に再開する)、togglePause() を呼び出します。
関連項目
| play | () | メソッド |
public function play(... arguments):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビデオファイルの再生を開始します。
サポートされるコーデックとファイル形式の詳細については、http://www.adobe.com/go/hardware_scaling_en および Flash Media Server のマニュアルを参照してください。
ビデオデータを表示するには、Video オブジェクトを作成して、Video.attachNetStream() メソッドを呼び出す必要があります。ビデオと一緒にストリームされるオーディオ、またはオーディオだけが含まれたファイルは自動的に再生されます。マイクロホンからオーディオをストリームするには、NetStream.attachAudio() メソッドを使用し、Microphone オブジェクトを使用して、オーディオのいくつかの特性を制御します。
ビデオファイルに関連付けられたオーディオを制御するには、DisplayObjectContainer.addChild() メソッドを使用して、表示リスト上のオブジェクトにオーディオをアタッチします。その後、Sound オブジェクトを作成することにより、オーディオのいくつかの特性を制御できます。詳細については、DisplayObjectContainer.addChild() メソッドを参照してください。
ビデオファイルが見つからなかった場合は、netStatus イベントが送出されます。再生中のストリームを停止するには、close() メソッドを使用します。
Flash Media Server のない環境でこのメソッドを使用する場合は、Flash Player セキュリティモデルの使用を検討してください。信頼できるローカルのサンドボックスまたはネットワーク接続したローカルのサンドボックスの SWF ファイルは、リモートサンドボックスからビデオファイルをロードおよび再生することができますが、クロスドメインポリシーファイルで明示的な許可が与えられていない限り、リモートファイルのデータにアクセスできません。SWF ファイルがこのメソッドを使用しないようにすることもできます。その場合は、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメータ (object タグおよび embed タグ) を設定します。
詳細については、以下を参照してください。
Netstream.checkPolicyFile プロパティ。パラメータ
... arguments — URLRequest オブジェクトまたはストリングとしての、再生するビデオファイルの場所です。SWF ファイルと同じディレクトリまたはサブディレクトリに格納されたローカルのビデオファイルを再生できますが、上位のディレクトリを参照することはできません。
Flash Media Server Flash Media Server のビデオファイルを再生するには、ファイル拡張子 (たとえば、
Flash Media Server では、
|
SecurityError — 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この制限は、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類すると回避できる場合があります。
|
|
ArgumentError — 少なくとも 1 つのパラメータを指定する必要があります。
|
|
Error — NetStream オブジェクトが無効です。このエラーは、NetConnection の失敗によって発生する場合があります。
|
関連項目
ns.play("record1", 0, 100, true);
ns.play("stephen");
| publish | () | メソッド |
public function publish(name:String = null, type:String = null):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
クライアントから Flash Media Server へ、ストリーミングオーディオ、ビデオ、およびテキストメッセージを送信します。送信中にストリームを記録することもできます。このメソッドは、指定されたストリームの発行者だけが使用できます。
既にパブリッシュされているか、記録されているストリームをクライアントに再生させる場合は、このメソッドを使用しないでください。代わりに、そのクライアントの NetStream インスタンスを作成し、play() メソッドを呼び出します。
var subscribeNS:NetStream = new NetStream(myNetConnection);
subscribeNS.play("streamToPlay");
Flash Media Server を使用してストリームを記録すると、サーバーがファイルを作成して、サーバー上のアプリケーションのディレクトリにあるサブディレクトリにそのファイルを格納します。各ストリームは、NetConnection.connect() に渡されたアプリケーションインスタンス名に一致する名前のディレクトリに格納されます。これらのディレクトリは自動的に作成されるため、アプリケーションインスタンスごとに作成する必要はありません。たとえば、次のコードでは、アプリケーションディレクトリ内の lectureSeries というディレクトリに格納されているアプリケーションの特定のインスタンスとの接続方法を示しています。lecture.flv という名前のファイルが /yourAppsFolder/lectureSeries/streams/Monday というサブディレクトリに格納されています。
var myNC:NetConnection = new NetConnection();
myNC.connect("rtmp://server.domain.com/lectureSeries/Monday");
var myNS:NetStream = new NetStream(myNC);
myNS.publish("lecture", "record");
次の例では、同じアプリケーションの別のインスタンスに接続し、同一の publish コマンドを発行する方法を示します。lecture.flv という名前のファイルが /yourAppsFolder/lectureSeries/streams/Tuesday というサブディレクトリに格納されています。
var myNC:NetConnection = new NetConnection();
myNC.connect("rtmp://server.domain.com/lectureSeries/Tuesday");
var myNS:NetStream = new NetStream(my_nc);
myNS.publish("lecture", "record");
インスタンス名の値を渡さない場合、name プロパティに渡された値に一致するファイルが /yourAppsFolder/appName/streams/_definst_ というサブディレクトリ ("デフォルトインスタンス" 用) に格納されます。インスタンス名の使用については、NetConnection.connect() メソッドを参照してください。ビデオファイルの再生については、NetStream.play() メソッドを参照してください。
Flash Media Server アプリケーションクライアントが publish() を呼び出すと、そのアプリケーションは onPublish イベントを受け取ります。アプリケーションはサーバーサイドスクリプトでそのイベントを処理する必要があります。クライアントがパブリッシュを停止すると、アプリケーションは onUnpublish イベントを受け取ります。詳細については、『Server-Side ActionScript Language Reference For Flash Media Server』を参照してください。
このメソッドは、各種情報オブジェクトを含む netStatus イベントを送出することができます。たとえば、指定した名前を持つストリームを誰かが既にパブリッシュしている場合、netStatus イベントはコードプロパティが NetStream.Publish.BadName で送出されます。詳細については、netStatus イベントを参照してください。
パラメータ
name:String (default = null) — ストリームを識別するストリングです。false を渡すと、パブリッシュ操作が停止します。このストリームにサブスクライブしているクライアントは、NetStream.play() を呼び出す場合に、この同じ名前を渡す必要があります。ストリーム名にファイル拡張子を含める必要はありません。ストリーム名の後にスラッシュ (/) を指定しないでください。たとえば、"bolero/" というストリーム名は使用しないでください。
|
|
type:String (default = null) — ストリームのパブリッシュ方法を指定するストリングです。有効な値は "record"、"append"、および "live" です。デフォルト値は "live" です。
|
関連項目
| receiveAudio | () | メソッド |
public function receiveAudio(flag:Boolean):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリーム上で着信オーディオが再生されるかどうかを示します。このメソッドは、指定されたストリームにサブスクライブされたクライアントでのみ使用できます。ストリームの発行者は使用できません。
このメソッドは、主に Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
このメソッドは、NetStream.play() メソッドを呼び出す前または呼び出した後に呼び出すことができ、実際にストリームの受信を開始します。たとえば、着信オーディオストリームをミュートおよびミュート解除する場合、ユーザーがクリックするボタンにこれらのメソッドをアタッチできます。
指定のストリームにオーディオデータのみが含まれる場合、このメソッドに値 false を渡すと NetStream.time は増加しなくなります。
パラメータ
flag:Boolean — ストリーム上で着信オーディオを再生するかどうかを指定します。再生する場合は true、再生しない場合は false を指定します。デフォルト値は true です。
|
| receiveVideo | () | メソッド |
public function receiveVideo(flagOrFPS:*):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリーム上で着信ビデオが再生されるかどうかを示します。このメソッドは、指定されたストリームにサブスクライブされたクライアントでのみ使用できます。ストリームの発行者は使用できません。
このメソッドは、主に Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。
このメソッドは、NetStream.play() メソッドを呼び出す前または呼び出した後に呼び出すことができ、実際にストリームの受信を開始します。たとえば、着信ビデオストリームを表示または非表示にする場合、ユーザーが押すボタンにこれらのメソッドをアタッチできます。
指定のストリームにビデオデータのみが含まれる場合、このメソッドに値 false を渡すと NetStream.time は増加しなくなります。
パラメータ
flagOrFPS:* — このストリーム上で着信ビデオを再生するかどうかを指定します。再生する場合は true、再生しない場合は false を指定します。デフォルト値は true です。整数値を使用して、着信ビデオの 1 秒あたりのフレームレートを指定することもできます。フレームレートを指定しない場合は、録画したときのフレームレートまたは再生するライブビデオのフレームレートがデフォルトで設定されます。
|
| resume | () | メソッド |
public function resume():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
再生を一時停止していたビデオストリームを再開します。ビデオが既に再生中である場合は、このメソッドを呼び出しても何も実行されません。
関連項目
| seek | () | メソッド |
public function seek(offset:Number):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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 フレームに基づいて、オフセット位置に新しいキーフレームを生成します。ただし、これによりサーバーの処理の負荷が高くなり、生成されるキーフレームに歪みが発生することがあります。ビデオコーデックが On2 の場合、シーク位置の前のキーフレームと、そのキーフレームとシーク位置の間にあるすべての P フレームがクライアントに送信されます。
パラメータ
offset:Number — ビデオファイルにおける、再生ヘッドのおおよその移動時間 (秒単位) です。Flash Media Server で、Application.xml 設定ファイルの <EnhancedSeek> が true に設定されている場合 (これがデフォルトの設定です)、サーバーはオフセットにキーフレームを生成します。
|
関連項目
| send | () | メソッド |
public function send(handlerName:String, ... arguments):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
パブリッシュされたストリーム上で、サブスクライブしているすべてのクライアントにメッセージを送信します。このメソッドは、指定されたストリームの発行者だけが使用可能で、Flash Media Server で使用することを目的としています。このメッセージを処理して応答するには、NetStream オブジェクトにハンドラを作成します。このオブジェクトの例には、ns.HandlerName があります。
Flash Player はメソッドやそれらのデータ、オブジェクトプロトタイプ変数、または列挙不可能な変数を直列化しません。表示オブジェクトの場合、Flash Player はパスを直列化しますが、データは直列化しません。
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);
| togglePause | () | メソッド |
public function togglePause():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ストリームの再生を一時停止または再開します。このメソッドを呼び出すと最初は再生を一時停止し、次に呼び出したときには再生を再開します。このメソッドを使用して、ユーザーが 1 つのボタンを押すだけで再生を一時停止または再生できるようにすることができます。
関連項目
| asyncError | イベント |
flash.events.AsyncErrorEvent
flash.events.AsyncErrorEvent.ASYNC_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。このイベントは、サーバーが定義されていないメソッドをクライアント上で呼び出したときに送出されます。
AsyncErrorEvent.ASYNC_ERROR 定数は、type プロパティ (asyncError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | ネットワーク操作エラーが発生したオブジェクトです。 |
error | イベントをトリガしたエラーです。 |
関連項目
| ioError | イベント |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
入出力エラーが発生してネットワーク処理が失敗したときに送出されます。
type プロパティ (ioError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
| netStatus | イベント |
flash.events.NetStatusEvent
flash.events.NetStatusEvent.NET_STATUS
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
NetStream オブジェクトが、そのステータスまたはエラーの状態をレポートすると送出されます。netStatus イベントには、info プロパティが含まれます。このプロパティは、接続試行が成功したかどうかなど、イベントに関する特定の情報を含む情報オブジェクトです。
type プロパティ (netStatus イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
info | オブジェクトのステータスまたはエラー状態を記述するプロパティを持つオブジェクトです。 |
target | そのステータスをレポートする NetConnection または NetStream オブジェクトです。 |
関連項目
| onCuePoint | イベント |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビデオファイルの再生中に、埋め込みキューポイントに達すると呼び出されます。このハンドラを使用して、ビデオが特定のキューポイントに達したときにコード内のアクションをトリガすることができます。これにより、アプリケーションの他のアクションをビデオ再生イベントと同期させることができます。Flash Media Server でサポートされるビデオのファイル形式の詳細については、Flash Media Server のマニュアルを参照してください。
このイベントは、Flash Media Server で使用することを目的としています。このイベントは Flash Player API の一部ではありませんが、便宜上、リファレンスガイドで取り上げています。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、このイベントを受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。ビデオファイルに埋め込み可能なキューポイントには、次のタイプがあります。
time プロパティを指定します。ナビゲーションキューポイントは、ユーザーをビデオファイルに移動させるブックマークやエントリポイントとしてよく使われます。onCuePoint イベントオブジェクトには、次のプロパティが含まれます。
| プロパティ | 概要 |
|---|---|
name | キューポイントがビデオファイル内に埋め込まれたときに、キューポイントに指定された名前です。 |
parameters | このキューポイントに指定された名前と値のペアのストリングの結合配列です。パラメータ名または値には、任意の有効なストリングを使用できます。 |
time | ビデオファイルの再生時にキューポイントが発生した時間 (秒数) です。 |
type | 到達したキューポイントの種類です。ナビゲーションまたはイベントのいずれかです。 |
最初にビデオファイルをエンコードするとき、または Flash オーサリングツールでビデオの読み込みウィザードを使用してビデオクリップを読み込むときに、ビデオファイルにキューポイントを定義できます。
onMetaData イベントも、ビデオファイル内のキューポイントに関する情報を取得します。ただし、onMetaData イベントは、ビデオの再生が開始される前に、すべてのキューポイントに関する情報を取得します。onCuePoint イベントは、1 つのキューポイントについて、再生時のそのキューポイントに指定された時間での情報を取得します。
一般に、コードで特定のキューポイントの発生時に応答するには、onCuePoint イベントを使用して、コード内の特定のアクションをトリガします。
onMetaData イベントに指定されたキューポイントのリストを使用すると、ビデオストリームの事前に定義されたポイントでユーザーにビデオの再生を開始させることができます。キューポイントの time プロパティの値を NetStream.seek() メソッドに渡して、そのキューポイントからビデオを再生します。
関連項目
| onMetaData | イベント |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
再生中のビデオファイルに埋め込まれている説明情報を Flash Player が受け取ったときに送出されます。Flash Media Server でサポートされるビデオのファイル形式の詳細については、Flash Media Server のマニュアルを参照してください。
この特別なイベントは、Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。この特別なイベントは厳密には Flash Player API の一部ではありませんが、便宜上、リファレンスガイドで取り上げています。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、このイベントを受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。Flash Video Exporter ユーティリティ (バージョン 1.1 以降) は、ビデオの継続時間、作成日付、データレート、その他の情報をビデオファイルに埋め込みます。各ビデオエンコーダは、それぞれ異なるメタデータのセットを埋め込みます。
このイベントは、NetStream.play() メソッドの呼び出し後、ただしビデオ再生ヘッドが進むよりは前にトリガされます。
多くの場合、ストリームメタデータに埋め込まれた継続期間の値は実際の継続時間に近似したものになりますが、正確な値ではありません。つまり、再生ヘッドがビデオストリームの末尾にある場合、FLV メタデータに埋め込まれた継続期間の値は NetStream.time プロパティの値と必ずしも一致するわけではありません。
関連項目
| onPlayStatus | イベント |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
NetStream オブジェクトによるストリームの再生が終了したときに送出されます。このハンドラにより、情報オブジェクトが返され、netStatus イベントにより返される情報以外の情報も提供されます。このハンドラを使用すると、NetStream オブジェクトが再生リスト内のストリームを切り替えたとき (情報オブジェクト NetStream.Play.Switch で示される)、または NetStream オブジェクトが終わりまで再生したときに (情報オブジェクト NetStream.Play.Complete で示される)、コード内のアクションをトリガできます。このイベントに応答するには、サーバーから送られる情報オブジェクトを処理する関数を作成する必要があります。
このイベントは、Flash Media Server で使用することを目的としています。詳細については、クラスの説明を参照してください。このイベントは Flash Player API の一部ではありませんが、便宜上、リファレンスガイドで取り上げています。addEventListener() メソッドまたはその他の EventDispatcher メソッドを使用して、このイベントを受け取ったり、処理したりすることはできません。代わりに、1 つのコールバック関数を定義して、以下のオブジェクトのいずれかを直接アタッチする必要があります。
client プロパティで参照されるオブジェクトです。このイベントでは、次のプロパティが指定された情報オブジェクトを返すことができます。
| code プロパティ | level プロパティ | 説明 |
|---|---|---|
NetStream.Play.Switch | "status" | サブスクライバが、再生リストでストリームを切り替えています。 |
NetStream.Play.Complete | "status" | 再生が終了しました。 |
関連項目
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 {
stream = 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/flash/9.0_jp/ActionScriptLangRefV3/flash/net/NetStream.html