rtmp+spark..VideoPlayer で SuonoDolce

SuonoDolce-Player

SuonoDolce を spark.components.VideoPlayer で再生してみた。Red5をインストールして、お勉強して、おもむろにコードを書いて、何となくできた。(ソース一式)
mx:VideoDisplayでは source で指定できたURLが、spark:VideoPlayer では二つに分離しないといけないことが課題。
つまり、source => serverURL+streamName への分解方法。

Red5とか、FlashMediaServerの資料を読んだりして判った範囲では、

プロトコル serverName appName streamName
rtmp:// fms-live-suono1.stream.ne.jp suono-live/_definst_ suono-live

と解釈するようだ。appName はアプリケーション名。streamName はストリーム名。
巷間、rtmp への接続サンプルでは、SuonoDolceのappNameのように複数になっているものは見かけなかった。結局、mx:VideoDisplay での接続をデバッガで追いかけてURLの分解方法を確認した。
rtmp では、単純にフォルダ中に動画のファイルが置かれているのではなくて、アプリケーションを介して、クライアントに動画データ(ストリーミングデータ)を渡すようだ。
巷間、サンプルなどではフォルダに動画ファイルの実体がある例が使われている。ところが、SuonoDolce は実体が無いようなので最初は戸惑った。例によって、解ってみたら簡単という部類でした。だけど、最初はわかんないんだよなぁ。

<?xml version="1.0" encoding="utf-8"?>

<s:WindowedApplication
   xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/halo">

  <s:VideoPlayer autoPlay="true">
    <s:StreamingVideoSource
       serverURI="rtmp://fms-live-suono1.stream.ne.jp/suono-live/_definst_"
       live="true">
      <s:StreamItem streamName="suono-live" />
    </s:StreamingVideoSource>
  </s:VideoPlayer>

  <!-- mx:VideoDisplay 
     source="rtmp://fms-live-suono1.stream.ne.jp/suono-live/_definst_/suono-live"
     autoPlay="true"
     live="true"/ -->

</s:WindowedApplication>