red5 の oflaDemo を使ってみる


内容

  • デモをインストールして、rtmp://localhost:1935/oflaDemo に Flash からアクセスしてみる。
  • 録画開始ボタンをクリックし、録画停止ボタンをクリックすると、サーバの stream フォルダに flv が保存される。


クライアント側(Flash)の作成

プログラム

var _nc:NetConnection;
var _ns:NetStream;
var _camera:Camera;
var _microphone:Microphone;
var _video:Video;

var _startButton:Sprite;
var _stopButton:Sprite;


startConnection();

function startConnection():void
{
	trace("接続開始");
	_nc = new NetConnection();
	_nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
	_nc.connect("rtmp://localhost:1935/oflaDemo");
}

function netStatusHandler(e:NetStatusEvent):void
{

	trace("connected is: " + _nc.connected ); 
	trace("event.info.level: " + e.info.level); 
	trace("event.info.code: " + e.info.code);

	switch (e.info.code) 
	{ 
		case "NetConnection.Connect.Success": 
			initCamera();
			break; 
		case "NetConnection.Connect.Rejected": 
			trace ("Oops! the connection was rejected"); 
			break; 
		case "NetConnection.Connect.Failed": 
			break; 
		case "NetConnection.Connect.AppShutDown": 
			_nc.close(); 
			break; 
		case "NetConnection.Connect.Closed": 
			break; 
	}
}


function initCamera():void
{
	// カメラ表示
	_camera = Camera.getCamera();
	_camera.setMode(320, 240, 12);

	_microphone = Microphone.getMicrophone();
	_microphone.setSilenceLevel(0);

	_video = new Video(_camera.width, _camera.height);
	_video.attachCamera(_camera);
	addChild(_video);

	// ここ適当に書いてます

	// 録画開始ボタン表示
	addChild(_startButton);
	// 録画停止ボタン表示
	addChild(_stopButton);
	_startButton.addEventListener(MouseEvent.CLICK, startClickHandler);
}

function startClickHandler(e:Event):void
{
	_startButton.removeEventListener(MouseEvent.CLICK, startClickHandler);
	_stopButton.addEventListener(MouseEvent.CLICK, stopClickHandler);

	startRecord();
}

function stopClickHandler(e:Event):void
{
	_stopButton.removeEventListener(MouseEvent.CLICK, stopClickHandler);
	_startButton.addEventListener(MouseEvent.CLICK, startClickHandler);

	stopRecord();
}

function startRecord():void
{
	trace("録画開始");
	_ns = new NetStream(_nc);
	_ns.attachAudio(_microphone);
	_ns.attachCamera(_camera);

	var videoName:String = "DemoRecode";
	_ns.publish(videoName, "record");
}

function stopRecord():void
{
	trace("録画停止");
	if (_ns != null)
	{
		_ns.close();
	}

	/*
	if (_video != null)
	{
		_video.attachCamera(null);
		_video.clear();
	}
	*/
}


Comment



Counter: 8259, today: 2, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:55:57 (1310d)