USTREAM Playerをflashで使用していろいろハマっためも。

2012.08.08 ActionScript3.0 

最近USTREAMのPlayerをFlashで実装する機会があったんですが、
なんかいろいろハマった&機会的にやっぱりレアなのかそんなに情報が出てこなかったので自分の為にもメモ。

as3のplayer用swcが公式にあるので、それをasdocs読みながらつくってくんですが、
これがなんか結構適当な内容。。な気がする。(まー情報が多分古いまま更新されてないし

こっちがas3 swcとか。こっちがas docsとか。

問題点

細かいとこだと総視聴者数の AllViewersが空オブジェクトで返ってきてたりとかまーたぶんいろいろあるんですが、
主に困った2つが以下。

・chによっては読み込めないchがある?(これはchのアカウント契約に左右されるものではない)
・この方法だとどうやら200人前後で帯域制限がある?

1個目はそのアカウントが使えるかどうか先に確認しておくことでなんとかなると思うんですが、2個目。
これ、そのまま使うとどうやら帯域制限かかるらしく、恐ろしい状況思い出してみてもなんとなく
200人前後が頭打ちっぽいんですよ。(200人て案件で全く使えないけど検証数にしては多すぎるw
200人越えた辺りから他の人がchに繋がらなくなり、(ただ特にErrorを返すわけではなく、online状態になりながら映像と音が無い状態)繋がっていた人がchの接続を離すと、待っていた誰かが突然繋がるみたいな感触。
※もちろん通常のembedでページ内に埋め込む場合上記問題は起きない。

というかUSTREAMのPlayerAPIでこんな話をそもそも聞いた事なかったんですが、
みなさんどうしてるんですかね?みんな大人しくhtmlにembedですか?
まーそもそもUSTREAM Playerをas3から使うのがもう割と稀な気はしますが。

解決策?

で、いろいろな方々に教えてもらった情報でなんとなく現実的なのが以下2つ。

・bizアカウントという直接契約による契約方法がある。
(これにより帯域制限が外される?らしい。この辺りは完全にUSTREAMさんとの直接交渉になるようですね)
※ちなみにサイトからこのアカウントへの申込導線等は存在しておらず、(というかそもそもそんなアカウントが存在するという表記さえない)中の人と直接コンタクトを取りつつ一緒に開発していくという方法らしい。なので費用+時間はもちろん発生するのでご注意。
・公式playerを更にswf内読み込みでラッピングして使用すると上記2点がクリアできる。(え。それっていいn

はい2つ目。非常にグレーな感じですが一応公式でembed時に使われているplayer swfを更にLoaderで読み込んでくるという方法。お手軽。ただこちらも色々問題があって、当然ながらこいつ単体で動くように作られているものなので、resizeとかload compのタイミングでイベントハンドラーが設定されております。

というわけでこのswf読み込むと
・リサイズを自分で行おうとする。
・video部分が問答無用でswapChildren?とかでstageの一番下層レイヤーに配置される。

で、これらを回避する為に中身が見たいんですが、中身がどうなってるか分からないので、
読み込んだswfを更にdescribeTypeして中身を探って行くんですねー!(そんなん全然知らなかったー)
でもそいうノウハウって知らないから、なるほどー、みんなやっぱりハカーぽいなーとか思いながらやってました。
(ウソそんな余裕なかった。

と、まあ完全にバッドノウハウな気もしますがかなり力技でそこの部分を矯正してやると
この方法でもなんとか使えるよ、っていうお話でした。

ココをこうすればいいよ!とかを知っている方や、ここどうすんの?ってもう少し詳しく聞きたい方は
@rettuce まで連絡くださーい。:)

で、これ全チャンネル帯域制限かからずにas3から使う方法、あるん?(´・_・`)

you

© rettuce.com