ビデオについて(Flash 6 以降)
ビデオを作成する
■Video クラスについて
Video クラスは、Flash に配置して表示できるオブジェクトの1つです。
外部にある動画ファイルを読み込んで再生したり、Webカメラの映像を表示することができます。
■ビデオオブジェクトを作成する
MovieClip クラスには、Video オブジェクトを動的に生成するためのメソッドが存在しません。
ビデオオブジェクトは、静的に用意する必要があります。
■ビデオオブジェクトを静的に用意する
ライブラリパネルの、右上のボタンをクリックします。
メニューから『 新規ビデオ 』を選択します。
ライブラリに追加された埋め込みビデオを、Flash 上に配置します。
プロパティパネルから、インスタンス名をつけます。
ここでは my_video と名前を付けます。
■Video クラスの基本的なプロパティについて
Video オブジェクトを、ムービークリップのように制御できるプロパティの一覧です。(一部省略)
プロパティ名 | 型 | 説明 |
_x | Number | x 座標(水平方向)の位置 |
_y | Number | y 座標(垂直方向)の位置 |
_rotation | Number | 0 から 360 までの角度 |
_xscale | Number | x 軸方向(水平方向)の拡大率 (100 で等倍) |
_yscale | Number | y 軸方向(垂直方向)の拡大率 (100 で等倍) |
_width | Number | 水平方向の大きさ(ピクセル単位) |
_height | Number | 垂直方向の大きさ(ピクセル単位) |
_alpha | Number | 0 から 100 までの透明度 (100 で通常表示) |
_visible | Boolean | 可視表示の設定 |
_name | String | インスタンス名の設定 |
ビデオのサイズを変更する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// ビデオのサイズを変更する
video_obj._x = 10;
video_obj._y = 10;
video_obj._width = Stage.width - 20;
video_obj._height = Stage.height - 20;
動画ファイルを再生する (Flash 7 以降)
■外部にある動画ファイルを読み込んで、再生する (Flash 7 以降)
■ビデオと NetStream オブジェクトを関連付ける
attachVideo() メソッドを使用します。
Video.attachVideo ( source ) :Void
第01引数 | Object | NetStream オブジェクトを指定。 |
戻り値 | Void | なし |
■使用例
外部にある動画ファイルを読み込んで、再生する
// ------------------------------------------------------------
// 静的に配置したビデオの参照を取得
// ------------------------------------------------------------
var video_obj = _root.my_video;
// ------------------------------------------------------------
// NetConnection オブジェクトを作成
// ------------------------------------------------------------
var net_connection = new NetConnection();
// 動画ファイル再生用の設定
net_connection.connect( null );
// ------------------------------------------------------------
// NetStream オブジェクトを作成
// ------------------------------------------------------------
var net_stream = new NetStream(net_connection);
// ------------------------------------------------------------
// ビデオと NetStream を関連付け
// ------------------------------------------------------------
video_obj.attachVideo(net_stream);
// ------------------------------------------------------------
// URL を指定して、ストリーム再生を開始する
// ------------------------------------------------------------
net_stream.play ( "http://example.com/video/test.flv" );
Webカメラの映像を表示する
■Webカメラの映像を表示する
Webカメラの映像を、ビデオオブジェクトに表示することができます。
ビデオと、カメラを関連付けるには、attachVideo() メソッドを使用します。
詳しい使用方法は、こちらで解説しています。
Webカメラの映像を表示する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// デフォルトのカメラオブジェクトを取得
var camera_obj = Camera.get();
// カメラが利用可能
if(camera_obj){
// ビデオとカメラを関連付け
video_obj.attachVideo(camera_obj);
}
映像ソースの解像度を取得する
■映像ソースの解像度を取得する
映像ソースの解像度を取得するには、以下のプロパティを使用します。
width プロパティで 水平方向の大きさをピクセル単位で取得します。
height プロパティで 垂直方向の大きさをピクセル単位で取得します。
これらのプロパティは、読み取り専用です。
■動画ファイルの映像ソースの解像度を取得する場合
動画ファイルのストリーム再生が成功するまでは、解像度の取得に失敗します。
onEnterFrame イベントなどを使用して、0 以外の数値が得られるまで監視し続けるといいでしょう。
動画ファイルの映像ソースの解像度を取得する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// ネットコネクションオブジェクトを作成
var net_connection = new NetConnection();
net_connection.connect( null );
// ネットストリームオブジェクトを作成
var net_stream = new NetStream (net_connection);
// ビデオとネットストリームを関連付け
video_obj.attachVideo(net_stream);
// ネットストリームに変化があるたびに呼び出されるイベント
net_stream.onStatus = function (info) {
// ストリーム再生開始(読み込み成功)
if(info.code == "NetStream.Play.Start"){
// 毎フレーム実行されるイベント
onEnterFrame = function (){
// 解像度の取得を試みる
var video_width = video_obj.width;
var video_height = video_obj.height;
// 解像度の取得に成功した
if(video_width && video_height){
// ビデオオブジェクトのサイズを変更
video_obj._width = video_width;
video_obj._height = video_height;
// 出力テスト
trace("w:" + video_width);
trace("h:" + video_height);
// イベントハンドラを無効化
net_stream.onStatus = null;
onEnterFrame = null;
}
};
}
};
// URL を指定して、ストリーム再生を開始する
net_stream.play ("http://hakuhin.jp/test.flv");
■Webカメラの映像ソースの解像度を取得する場合
Webカメラの映像ソースの解像度を取得する場合、Camera オブジェクト側のプロパティを使用します。
Video オブジェクトからアクセスすると、取得に失敗したり、変更前の古い結果が得られる事があります。
Webカメラの映像ソースの解像度を取得する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// デフォルトのカメラオブジェクトを取得
var camera_obj = Camera.get();
// カメラが利用可能
if(camera_obj){
// ビデオとカメラを関連付け
video_obj.attachVideo(camera_obj);
// Camera クラスから解像度を取得
var camera_width = camera_obj.width;
var camera_height = camera_obj.height;
// ビデオオブジェクトのサイズを変更
video_obj._width = camera_width;
video_obj._height = camera_height;
// 出力テスト
trace("w:" + camera_width);
trace("h:" + camera_height);
}
スムージングを設定する
■スムージングを設定する
スムージングを設定するには、smoothing プロパティを使用します。
true をセットすると、スムージング表示が有効になります。(画質が低以外の場合)
デフォルトは、false です。
ビデオにスムージングを設定する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// デフォルトのカメラオブジェクトを取得
var camera_obj = Camera.get();
// カメラが利用可能
if(camera_obj){
// ビデオとカメラを関連付け
video_obj.attachVideo(camera_obj);
// ビデオのスムージング表示を有効
video_obj.smoothing = true;
// 低解像度に設定(テスト確認用)
camera_obj.setMode(100,75,30);
// ビデオのサイズを、実際の解像度の10倍に変更(テスト確認用)
video_obj._width = camera_obj.width * 10;
video_obj._height = camera_obj.height * 10;
}
非ブロッキングフィルタを設定する
■非ブロッキングフィルタを設定する
非ブロッキングフィルタを設定するには、deblocking プロパティを使用します。
低ビットレートの動画再生時に効果的です。
Sorenson コーデックの場合
Sorenson コーデック使用時は、以下の数値を指定します。
2 より大きい数値を指定した場合、2 が適用されます。
数値 | 説明 |
0 | 自動的に非ブロックフィルタの使用を切り替えます。(通常) |
1 | 非ブロックフィルタを使用しません。 |
2 | 非ブロックフィルタを使用します。 |
On2 VP6 コーデックの場合
On2 VP6 コーデック使用時は、以下の数値を指定します。
数値 | 説明 |
0 | 自動的に非ブロックフィルタの使用を切り替えます。(通常) |
1 | 非ブロックフィルタを使用しません。 |
3 | 非ブロックフィルタを使用します。リンギング除去フィルタを使用しません。 |
4 | 非ブロックフィルタを使用します。リンギング除去フィルタを使用します。(低品質、低負荷) |
5 | 非ブロックフィルタを使用します。リンギング除去フィルタを使用します。(高品質、高負荷) |
非ブロッキングフィルタを設定する
// 静的に配置したビデオの参照を取得
var video_obj = _root.my_video;
// ネットコネクションオブジェクトを作成
var net_connection = new NetConnection();
net_connection.connect( null );
// ネットストリームオブジェクトを作成
var net_stream = new NetStream (net_connection);
// ビデオとネットストリームを関連付け
video_obj.attachVideo(net_stream);
// URL を指定して、ストリーム再生を開始する
net_stream.play ("http://hakuhin.jp/test.flv");
// 非ブロッキングフィルタを設定する
video_obj.deblocking = 5;