1000Speakers@Sendai #1 懇親会での発表

とりあえず資料。

話す人埋まらなかった時用の代役プレゼン。
途中で話す人埋まったので作りかけ。正直すまんかった。

色々説明不足なので説明を。
まずCocomoですが、これはAdobeが発表した、所謂PaaS(platform-as-a-service)にカテゴライズされるサービスです。
とか、いきなり受け売りをかましましたが、PaaSってCocomoで初めて聞いたよ。
サービスとしてのアプリケーション開発・実行基盤のことだそうで。
SaaSとも違うんですね。IT業界は略語が多くていかんですね。

えー、要するにAdobeクラウドを使ってストリーミングとかオブジェクトの共有なんかをやらしてもらえると。しかも便利なAPIを通して。

なにが出来るのかっていうとこんなの
* VoIP Audio
* Webcam Video
* Chat
* Multi-User Whiteboards
* Real-Time File Sharing
* User Management
* Roles and Permissions
* Robust Data Messaging


やろうとしてた事のために自前でRed5サーバ(FMS相当のオープンソースストリーミングサーバ)をたてたりとかしてた訳ですが、このβサービスを使うと、そういったものも利用する必要が無いわけです。

どんくらい便利になるのかというと、例えば映像と音声のストリーミングが...

//ストリーミング開始側
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
    
private var nc:NetConnection;
private var ns:NetStream;
private var cam:Camera;
private var mic:Microphone;

private function init():void{
    nc = new NetConnection();
    nc.client = new CustomClient();
    nc.connect("rtmp://localhost/oflaDemo");//flvの保存先
    nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
    nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
    setupCameraMic();//カメラとマイクを設定
}
private function onNetStatus(evt:NetStatusEvent):void{
  switch(evt.info.code){
  case "NetConnection.Connect.Success":
  ns = new NetStream(nc);//ストリーミング
  trace("Success");
  break;
・・・・・・・・・・・・・・・・・
//カメラとマイクの設定
private function setupCameraMic():void{
 cam = Camera.getCamera();
 mic = Microphone.getMicrophone();
 if(cam != null){
 videoContainer.attachCamera(cam);
 }
}
private function broadcastClick():void{
   ns.attachCamera(cam);
   ns.attachAudio(mic);
   ns.publish("red5BroadcastDemo","live");//ライブストリーミング
}

//受信プレイヤー側
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

private var nc:NetConnection;
private var ns:NetStream;
private var cam:Camera;
private var mic:Microphone;

private function init():void{
    nc = new NetConnection();
    nc.client = new CustomClient();
    nc.connect("rtmp://localhost/oflaDemo");//flvの保存先
    nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
    nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
    setupCameraMic();//カメラとマイクを設定
}
private function onNetStatus(evt:NetStatusEvent):void{
  switch(evt.info.code){
  case "NetConnection.Connect.Success":
  ns = new NetStream(nc);//ストリーミング
  trace("Success");
  break;
・・・・・・・・・・・・・・・・・	

private function setupCameraMic():void{
  ns = new NetStream(nc);
  ns.client = new CustomClient();
  var video:Video = new Video();
  video.attachNetStream(ns);
  ns.play("red5BroadcastDemo",-1);
  myVideoContainer.addChild(video);
  }

private function onMetaData(data:Object):void{
}

こうなる

<mx:Application
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="absolute" 
	xmlns:rtc="CocomoNameSpace">

	<rtc:AdobeHSAuthenticator 
		id="auth" 
		userName="my_user_name" 
		password="my_password"  />
	
<rtc:ConnectSessionContainer 
	roomURL="http://connectnow.acrobat.com/my_user_name/my_room" 
	id="cSession" 
	authenticator="{auth}">


<rtc:WebCamera width="100%" height="150"/>

<rtc:AudioPublisher id="audioPub"/>

認証周りをのぞくと映像も音声もわずか一行です。
同様にチャットも...

<rtc:SimpleChat width="100%" height="100%"/>

こんだけ><
Shared Object用意してあれしてそれしてとかやらなくても出来ちゃうよ。勿論こった事やろうとしたらCocomoSDKを色々調べる必要があるけど。

まだβサービスでお金もかからないからみんなAdobeID取って登録したらいいと思うよ。

という内容でした。