Flexで音声保存(RED5)

FlexRED5を使って音声を保存してみました。
大学の研究で、音声クエリの作成が必要とのことで、今回RED5を用いて作成しました。

#サーバーが必要なのでサンプルはないでっす。
RED5
http://osflash.org/red5
追加クラス( import com.renaun.samples.net.FMSConnection の部分ね)
http://renaun.com/flex2/red5/BasicChat.html
ソースビューでダウンロードしてください。
簡単なソースはこんな感じ。スタートで録音開始で、ストップで録音停止+録音されたものを再生
以下の場合だと音声ファイルは「C:\Program Files\Red5\webapps\oflaDemo\streams」に保存されます。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    creationComplete="init()"
    >
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import com.renaun.samples.net.FMSConnection;
private var nc:FMSConnection;
private var clientID:Number;
private var ns:NetStream;
private var lastVideoName:String;
private function init():void{
    // Netコネクションの設定
    NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
    nc = new FMSConnection();
    nc.addEventListener( "success", connectionSuccessHandler );
    nc.connect( "rtmp://localhost/oflaDemo" );
    // ボタンの設定
    btnStart.enabled = true;
    btnStop.enabled  = false;
}
private function connectionSuccessHandler( event:Event ):void    {
    clientID = nc.clientID;
}
private function startClick():void{
    //録音開始
    myLog.text = "start";
    // ネットストリーム作成
    ns = new NetStream(nc);
    //メタデータの設定(なんかないと怒られる)
    var client:Object = new Object();
    client.onMetaData = onMetaData;
    ns.client = client
    // マイクの設定
    var mic:Microphone = Microphone.getMicrophone();
    ns.attachAudio(mic);
    //ファイル名
    lastVideoName = "red5RecordDemo_" + Math.random();
    //録音スタート
    ns.publish(lastVideoName, "record");
    // ボタンの設定
    btnStart.enabled = false;
    btnStop.enabled  = true;
}
private function stopClick():void{
    //録音停止
    myLog.text = "stop";
    ns.close();
    //録音したものを再生(なんかめんどっちい
    var uiC:UIComponent = new UIComponent();
    var video:Video = new Video(320,240);
    video.attachNetStream( ns );
    uiC.addChild(video);
    videoContainer.addChild(uiC);
    ns.play(lastVideoName + ".flv");
    // ボタンの設定
    btnStart.enabled = true;
    btnStop.enabled  = false;
}
// メタデータ取得
private function onMetaData(data:Object):void{
}
]]>
</mx:Script>
<mx:Canvas id="videoContainer" width="400" height="400"  x="345.5" y="10"/>
<mx:Panel x="10" y="12" width="208" height="398" layout="absolute">
    <mx:TextArea x="10" y="151" width="167" height="197" id="myLog"/>
    <mx:Button id="btnStop" x="116" y="10" label="ストップ" click="stopClick()"/>
    <mx:Button id="btnStart" x="45" y="10" label="スタート" click="startClick()"/>
    <mx:Label x="10" y="12" text="録音"/>
    </mx:Panel>
</mx:Application>

正直疲れた・・・。でも、できてよかった(>_<)