【AS3】ActionScript3.0でFMS使ってライブカメラする

ライブカメラを使っている自社サイトをAS3で組み直すことに。
まずは基盤になるライブカメラのところをAS3化。
サクサクと作ってしまったので冗長な感じかも。。。
でも、ActoinScript2.0の情報ならネット上にわんさかありますが、ActionScript3.0はあまりお目にかかれないようでしたので参考程度になればと。
FMSへ送信用
camSend.as
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
public class camSend extends Sprite {
private var camera:Camera;
private var video:Video;
private var nc:NetConnection;
private var stream:NetStream;
public function camSend() {
init();
}
private function init():void {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
camera = Camera.getCamera();
if(camera != null){
setupCamera();
}else{
trace("カメラがありません");
return;
}
nc = new NetConnection();
nc.objectEncoding = ObjectEncoding.AMF0;
nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
nc.connect("rtmp://myfms.com/webcam"); // ストリーミングサーバーアドレス
}
private function sendVideo():void {
stream = new NetStream(nc);
stream.attachCamera(camera);
stream.publish("myvideo");
}
private function setupCamera():void {
video = new Video(camera.width,camera.height);
video.attachCamera(camera);
addChild(video);
}
private function onNetStatus(evt:NetStatusEvent):void {
switch(evt.info.code){
case "NetConnection.Connect.Success":
trace("接続成功");
sendVideo();
break;
case "NetConnection.Connect.Closed":
trace("接続解除");
break;
case "NetConnection.Connect.Faild":
trace("接続失敗");
break;
case "NetConnection.Connect.Rejected":
trace("接続拒否");
break;
default:
trace("evt.info.code");
}
}
private function onSecurityError(evt:SecurityErrorEvent):void {
trace("セキュリティエラー");
}
private function onAsyncError(evt:AsyncErrorEvent):void {
trace("同期エラー");
}
}
}
FMSから受信用(公開用)
camReceive.as
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
public class camReceive extends Sprite {
private var video:Video;
private var nc:NetConnection;
private var stream:NetStream;
public function camReceive() {
init();
}
private function init():void {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
nc = new NetConnection();
nc.objectEncoding = ObjectEncoding.AMF0;
nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
nc.connect("rtmp://myfms.com/webcam"); //ストリーミングサーバーアドレス
}
private function receiveVideo():void {
video = new Video(320,240);
stream = new NetStream(nc);
video.attachNetStream(stream);
stream.play("myvideo");
addChild(video);
}
private function onNetStatus(evt:NetStatusEvent):void {
switch(evt.info.code){
case "NetConnection.Connect.Success":
trace("接続成功");
receiveVideo();
break;
case "NetConnection.Connect.Closed":
trace("接続解除");
break;
case "NetConnection.Connect.Faild":
trace("接続失敗");
break;
case "NetConnection.Connect.Rejected":
trace("接続拒否");
break;
default:
trace("evt.info.code");
}
}
private function onSecurityError(evt:SecurityErrorEvent):void {
trace("セキュリティーエラー");
}
private function onAsyncError(evt:AsyncErrorEvent):void {
trace("同期エラー");
}
}
}
Comments
2 Responses to “【AS3】ActionScript3.0でFMS使ってライブカメラする”














hello everybody. my Japanese is not good but it seems like a very nice web site. thanks
[...] – PHP,MySQL,Flexな日々+イラストとか」 「【AS3】ActionScript3.0でFMS使ってライブカメラする|blog.hereticsintheworld」 「trick7.com blog: Flash 上で Bitmap を JPEG 画像に変換」 [...]