忍者ブログ
 >admin |  >entry |  yukku++Blog 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

気が付けばもう11月。何気に早い卒業制作〆切なのにいまさらビデオ再生関係。

まずは、AS3でFLV形式のビデオを再生するまでの道のり。

  1. NetConnectionオブジェクトがサーバーまたはローカルへの接続を開く。
  2. NetStreamオブジェクトが接続を利用してビデオデータを流す。
  3. Videoオブジェクトがビデオデータを表示する。
大雑把にするとこの3ステップを踏んで、FLVビデオを再生ってことになる。
あと、ビデオ周りついでに、メタデータの取得もやっておこう。
詳細な流れはソースで確認していく。

// それぞれ必要なクラスをインポート
import flash.media.Video
import flash.net.NetStream;
import flash.net.NetConnection;

// それぞれを定義。
var nc:NetConnection = new NetConnection();
var ns:NetStream;
var video:Video = new Video(320,240);

// メタデータ用に適当なオブジェクトを用意しておく。
var client:Object = new Object();
var totalTime:String;

function Main():void 
{
	// ローカルぼ場合は null を指定。
	nc.connect(null);

	// NetStream に NetConnection を渡す。
	ns = new NetStream(nc);

	// Video に attachNetStream で NetConnection を渡す。
	video.attachNetStream(ns);
	
	// Video を addChild で表示。
	stage.addChild(video)
	
	// NetStream の play() で再生開始。
	ns.play("maji.flv")	
	
	// メタデータの処理
	client.onMetaData = function(meta:Object):void
	{
		// 取得されるデータは String型
		totalTime = meta.duration;
	}
	ns.client = client;
}

最小限だとこんな感じになるかな?
Video オブジェクトは単に表示するためのオブジェクトってのが自分的に意外。
ストリーミングを考慮しての設計らしいのでこのような手順を踏むのだとか。
play() や pause() の再生関係のメソッドは NetStream にある。
実はメタデータの処理の仕方がイマイチ理解できてない…。拾ったサンプルまるパクリ。
メタデータに総再生時間とかコーデックの種類とかが入ってるらしいけど、
参照名が決められてないからコーデック次第で参照名が変わるとの記述も…。
コールバック関数とか、functionの代入がいまだに分かってない。
早急に勉強・理解せねばねば。
Flex なら VideoDisplay のコンポーネントを設置するだけでいけるって便利だなぁ。
NetStream 関係で揉め事があるようだけど簡単なのには変わりない。

んで、フレーム単位でビデオを行ったりきたり、映像をスクラッチっぽく操作したいんだけど
調べて見ると、どうやらそれに関しては一筋縄ではいかないようだ…。
でも避けては通れないから何とか解決しなくては、てわ。

PR
Comment
Name
Title
Color
Mail
URL
Comment
Passwd   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Track
TB:
[48]  [47]  [46]  [45]  [44]  [43]  [42]  [41]  [40]  [39]  [38
プロフィール
Name :
yukku
カレンダー
06 2024/07 08
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
ブログ内検索
Twitter
Ads
アクセス解析
忍者ブログ [PR]