こんばんはmuchoです。
USTREAMをFlash内に読み込もうとして、あれこれやってみたのでメモ。
下記のページを参考にしました。
Flash Client API Documentation (AsDoc)
USTREAM Flash Client APIの使い方
Flash : Ustream Flash Client APIを使ってみる - SWFなカスタムパネルで中継を再生
01 | public function main(): void |
07 | private function getRsl(): void |
09 | Security.allowDomain( "*" ); |
10 | Security.allowInsecureDomain( "*" ); |
11 | viewerLoader = new Loader(); |
12 | viewerLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onRslLoad); |
14 | this .addChild(viewerLoader); |
16 | var applicationDomain:ApplicationDomain = ApplicationDomain.currentDomain; |
17 | var loaderContext:LoaderContext = new LoaderContext(); |
20 | loaderContext.applicationDomain = applicationDomain; |
21 | viewerLoader.load(request, loaderContext); |
24 | private function onRslLoad(e:Event): void |
26 | var logicClass:Class = viewerLoader.contentLoaderInfo.applicationDomain.getDefinition( "tv.ustream.viewer.logic.Logic" ) as Class; |
27 | viewer = new logicClass(); |
29 | this .addChild(viewer.display); |
33 | private function playChannel(id: String = null ): void |
35 | var channelId: String = id; |
37 | id = default_channelID; |
39 | viewer.createChannel(id); |
40 | addEventListener(Event.ENTER_FRAME, onStart); |
41 | viewer.playing = true ; |
44 | private function onStart(e:Event): void |
46 | if (!viewer.channel.streamRect) return ; |
47 | e.target.removeEventListener(e.type, arguments.callee); |
48 | var vw: Number = viewer.channel.streamRect.width; |
49 | var vh: Number = viewer.channel.streamRect.height; |
53 | viewer.display.width = viewer_width; |
54 | viewer.display.height = viewer_height = viewer_width * (vh / vw); |