root/tags/desktopplayer-1.0/yt.as

Revision 90, 2.9 kB (checked in by jeroen, 17 months ago)

tagged 4.2 mediaplayer and 1.0 desktopplayer and removed 4.2 branch

Line 
1// Security domains
2System.security.allowDomain('*');
3System.security.allowInsecureDomain('*');
4
5
6
7// Variables
8var ytPlayer:MovieClip = this.createEmptyMovieClip("ytPlayer",this.getNextHighestDepth());
9var ytPlayerLoader:MovieClipLoader = new MovieClipLoader();
10var ytLocation:String = "http://gdata.youtube.com/apiplayer/cl.swf?key=AI39si5vap3DRPYttWUdJutb5aeUHz7-uPnwWMt4X9QgzwBQqSOl5r6Tzd0Su3MPJx_9t8LR5zi-bw5ztLcxIOh-Auj-fiiYEw";
11var _as3_to_as2:LocalConnection = new LocalConnection();
12var _as2_to_as3:LocalConnection = new LocalConnection();
13_as3_to_as2.allowDomain('*');
14_as2_to_as3.allowDomain('*');
15var loadInterval:Number;
16var byteInterval:Number;
17var timeInterval:Number;
18var loaded:Number;
19var position:Number;
20
21
22
23// Interval handlers
24function loadHandler() {
25        if (ytPlayer.isPlayerLoaded()) {
26                _as2_to_as3.send("_AS2_to_AS3","onSwfLoadComplete");
27                clearInterval(loadInterval);
28                ytPlayer.addEventListener("onStateChange", onPlayerStateChange);
29                ytPlayer.addEventListener("onError", onPlayerError);
30                ytPlayer.setSize(320,240);
31                ytPlayer.unMute();
32        }
33};
34function byteHandler() {
35        var btl = ytPlayer.getVideoBytesLoaded();
36        var ttl = ytPlayer.getVideoBytesTotal();
37        var off =  ytPlayer.getVideoStartBytes();
38        if(ttl > 10 && btl != loaded) {
39                loaded = btl;
40                _as2_to_as3.send("_AS2_to_AS3","onLoadChange",btl,ttl,off);
41                if(btl+off >= ttl) {
42                        clearInterval(byteInterval);
43                }
44        }
45};
46function timeHandler() {
47        var pos = Math.round(ytPlayer.getCurrentTime()*10)/10;
48        var dur = Math.round(ytPlayer.getDuration()*10)/10;
49        if(dur > 3) {
50                if(pos == position && dur-pos < 10) {
51                        onPlayerStateChange(0);
52                } else {
53                        _as2_to_as3.send("_AS2_to_AS3","onTimeChange",pos,dur);
54                }
55        }
56        position = pos;
57};
58
59
60
61// Event handlers
62function onPlayerStateChange(stt:Number) {
63        clearInterval(timeInterval);
64        if(stt == 1) {
65                timeInterval = setInterval(timeHandler,200);
66        } else if (stt == 3) {
67                clearInterval(byteInterval);
68                byteInterval = setInterval(byteHandler,200);
69                timeInterval = setInterval(timeHandler,200);
70        }
71        _as2_to_as3.send("_AS2_to_AS3","onStateChange",stt);
72};
73function onPlayerError(erc:Number) {
74        _as2_to_as3.send("_AS2_to_AS3","onError",stt);
75        clearInterval(timeInterval);
76};
77
78
79// Directive forwards
80_as3_to_as2.pauseVideo = function() { ytPlayer.pauseVideo(); };
81_as3_to_as2.playVideo = function() { ytPlayer.playVideo(); };
82_as3_to_as2.stopVideo = function(){ ytPlayer.stopVideo(); clearInterval(byteInterval); };
83_as3_to_as2.loadVideoById = function(id,pos) { ytPlayer.loadVideoById(id,pos); };
84_as3_to_as2.setVolume = function(vol) { ytPlayer.setVolume(vol); };
85_as3_to_as2.seekTo = function(pos) { ytPlayer.seekTo(pos,true); };
86_as3_to_as2.setSize = function(wid,hei) { ytPlayer.setSize(wid,hei); };
87
88
89// Initialization
90_as3_to_as2.connect("_AS3_to_AS2");
91ytPlayerLoaderListener = {};
92ytPlayerLoaderListener.onLoadInit = function() { loadInterval = setInterval(loadHandler,200); };
93ytPlayerLoader.addListener(ytPlayerLoaderListener);
94ytPlayerLoader.loadClip(ytLocation,ytPlayer);
95
Note: See TracBrowser for help on using the browser.