コードを舐める日々

わからないことがわからないことをしる日々

flvファイルの再生方法(AS3)

flvファイルから読み込んで再生するプレーヤーを作ってみたく、調べてみた。
本とか買って勉強しようかなと思ったけど、あまりお金使いたくないのでググることにした。
立ち読みとかも考えたけれど、今夜は雨が降りそうなのでw
ググってみると、本家のサイトのドキュメンテーションがいい感じ。
本家だとどうしても難しくて、敬遠しがちだけどがんばる。


試しに今夜作ってみるということでメモ。
AdobeのFlash CS3ドキュメンテーションから分かったことのまとめ。(ただ省略しただけだがw

flvファイルの再生するためにはNetStream クラスを使う。
下記のメソッドを利用する。

pause() : ビデオ再生を一時停止。すでに停止状態では効かない。
resume() : 再生を一時停止から再開。再生状態では効かない。
seek() : 指定の位置へ移動。はじめから再生する時に使える。
togglePause() : 再生を一時停止または再開。

各ボタンのインスタンス

  • ポーズボタン : pauseBtn
  • 再生ボタン : playBtn
  • ストップボタン : stopBtn
  • 再生&ボーズボタン : togglePauseBtn
var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play("video.flv");

//Flvファイルの読み込みに失敗したら
function asyncErrorHandler(event:AsyncErrorEvent):void
{
    // 差し替え画像を表示するとか
}


var vid:Video = new Video();
vid.attachNetStream(ns);
addChild(vid);

//ボタンの役目を設定
pauseBtn.addEventListener(MouseEvent.CLICK, pauseHandler);
playBtn.addEventListener(MouseEvent.CLICK, playHandler);
stopBtn.addEventListener(MouseEvent.CLICK, stopHandler);
togglePauseBtn.addEventListener(MouseEvent.CLICK, togglePauseHandler);

//ポーズボタン
function pauseHandler(event:MouseEvent):void
{
    ns.pause();
}

//再生ボタン
function playHandler(event:MouseEvent):void
{
    ns.resume();
}

//ストップボタン
function stopHandler(event:MouseEvent):void
{
    // ストリームを一時停止し、再生ヘッドを
    // ストリームの先頭に移動します。
    ns.pause();
    ns.seek(0);
}

//ポーズ&再生ボタン
function togglePauseHandler(event:MouseEvent):void
{
    ns.togglePause();
}

いずれはJSファイルからflvファイルの名前を読み込んで再生できるようなものにしたい。