メイン

2010年04月26日

ストリーミングファイルを置く場所

FMSでおく所。

applications/アプリ名/streams/_definst_/ここ.flv

だと思う。

2009年09月30日

stream player with fms

//fmsを使ったflvのストリーミング再生には.flvを除いたファイル名とrtmpのurlガ必要デス
//_streamPlayer.initialize("flv-name", "rtmp://hogehoge.jp/hoge/");

package jp.nabe.flv {
import flash.events.AsyncErrorEvent;
import flash.events.IOErrorEvent;
import flash.events.NetStatusEvent;
import flash.media.Video;
import jp.bascule.net.DynamicNetConnection;
import jp.bascule.net.DynamicNetStream;

/**
* ...
* @author watanabe
*/
public class StreamPlayer extends Video{

private var _uri :String;
private var _nc :DynamicNetConnection;
private var _ns :DynamicNetStream;
private var _client :Object;
private var _duration :Number = 0;
private var _streamUri :String;

private var _isFinish:Boolean = false;
private var _playing:Boolean = false;

public function StreamPlayer(width:Number = 640, height:Number = 480, smooth:Boolean = false) {
this.smoothing=smooth
super(width,height);
}

public function initialize(uri:String,streamUri:String=null):void{
_client = new Object();
_uri = uri;
_streamUri = streamUri;
_nc = new DynamicNetConnection(onSuccess);
_nc.connect(streamUri);
}

private function onSuccess():void {
trace("onSuccess");
_ns = new DynamicNetStream(_nc);
_ns.client = new CustomClient();
this.attachNetStream(_ns);
dispatchEvent(new SimpleFlvPlayerEvent(SimpleFlvPlayerEvent.SUCCESS));
}

//play
public function play():void {
trace("play",_ns);

_isFinish = false;
_playing = true;

_ns.play(_uri);
_ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,onAsyncError);
_ns.addEventListener(IOErrorEvent.IO_ERROR,onIOError);
_ns.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
}

public function pause():void{
_ns.pause();
_playing = false;
}

public function resume():void {
_ns.resume();
_playing = true;
}


public function close():void {
_ns.close();
_playing = false;
}

//所望の位置にシークする
public function seek(rate:Number):void {
_ns.seek(rate * _duration);
}

private function onAsyncError(event:AsyncErrorEvent):void{
trace("ASYNC_ERROR");
}

private function onIOError(event:IOErrorEvent):void{
trace("ファイル入出力のエラー");
}

private function onStatus(event:NetStatusEvent):void {
trace("onStatus" + event.info.code);
switch(event.info.code){
case "NetStream.Buffer.Empty":
trace("バッファが空になったので中断__"+_isFinish);
if (_isFinish) {
dispatchEvent(new SimpleFlvPlayerEvent(SimpleFlvPlayerEvent.FINISH));//
}
break;
case "NetStream.Buffer.Flush":
trace("ストリーム読み込みが終了した__");
_isFinish = true;
break;
case "NetStream.Play.Start":
trace("再生の開始__");
break;
case "NetStream.Play.Stop":
trace("再生の停止__ "+_isFinish);
if (_isFinish) {
dispatchEvent(new SimpleFlvPlayerEvent(SimpleFlvPlayerEvent.FINISH));//
}
break;
case "NetStream.Play.StreamNotFound":
trace("NetStream.Play.StreamNotFound__");
break;
case "NetStream.Play.Failed":
trace("NetStream.Play.Failed__");
break;
case "NetStream.Seek.Failed":
trace("シークが失敗した__");
break;
case "NetStream.Seek.InvalidTime":
trace("NetStream.Seek.InvalidTim");
break;
case "NetStream.Seek.Notify":
trace("シーク操作完了__");
break;
}
}

public function get time():Number { return _ns.time; }
public function get timeRate():Number { return (_ns) ? (_ns.time / CustomClient(_ns.client).duration) : 0; }
public function get loadedRate():Number { return (_ns.bytesLoaded/_ns.bytesTotal); }
public function get duration():Number { return _duration; }
public function get ns():DynamicNetStream { return _ns; }
public function get nc():DynamicNetConnection { return _nc; }
public function get playing():Boolean { return _playing; }

}

}

2009年08月03日

call

asc側でのコールはこんな感じです

client.call("onConnect",null,以下引数)

2009年07月31日

FMS2を使い方メモ (ローカル編)

1.fms2_console.swfを起動する


2.C:\Program Files\Macromedia\Flash Media Server 2\conf\fms.ini
をみる。

VHOST.APPSDIRが作業ディレクトリになるので
VHOST.APPSDIR = C:\Documents and Settings\xxxxxxx
と設定。

設定したディレクトリ内に ディレクトリAAAをつくったとする。

flashからアクセスするには
rtmp://localhost/AAA
となる

3.fms.iniのusername他をfms2_console.swfに入力
・SERVER.ADMIN_USERNAME
・SERVER.ADMIN_PASSWORD
・VHOST.APPSDIR (アプリケーションをいれるフォルダ)

console.swfのServer Addressにはlocalhostをいれる


4.そしてログイン!反映されなかったらFMSを再起動
C:\Program Files\Macromedia\Flash Media Server 2\tools
StopServerService.bat でFMS停止
StartServerService.bat でFMS開始
してもう一回みてみよー

2009年02月17日

fmsにおけるオブジェクト走査

for( var n in this.clientList ){

this.clientList[n]

}

FMSでストリーミング再生を使う際の、flash側のns

/**
* ...
* @author watanabe
*/
public dynamic class DynamicNetStream extends NetStream{

public function DynamicNetStream(nc:NetConnection) {
super(nc);
}

public function onPlayStatus(e:Object):void {
trace("[DynamicNetStream] " + e);
}
public function onMetaData(e:Object):void {
trace("[DynamicNetStream] " + e);
}

}

2009年02月12日

fmsのapplicationの場所の設定

C:\Program Files\Macromedia\Flash Media Server 2\conf\fms.ini

でパスを変える?

2008年06月19日

Responder

import flash.net.Responder;

 var getMyNameResObj:Responder = new Responder(getMyNameResResult, getMyNameResFauled);
 NC.call("getMyName", getMyNameResObj);

 function getMyNameResResult(my_name:String) {
 }

 function getMyNameResFauled(event:Object) {
 }

2008年06月06日

indexOf

indexOfがない!

削除のときは下記のようにした

for( var i=0 ; i < this.list.length ; i++ ){
if(client==this.list[i]){
this.list.splice(i,1);
}
}