root/trunk/as2/com/jeroenwijering/players/MediaPlayer.as @ 1

Revision 1, 5.0 kB (checked in by jeroen, 18 months ago)

initial commit of old repository into public one

  • Property svn:executable set to *
Line 
1/**
2* Player that reads all media formats Flash can read.
3*
4* @author       Jeroen Wijering
5* @version      1.10
6**/
7
8
9import com.jeroenwijering.players.*;
10import com.jeroenwijering.utils.BandwidthCheck;
11
12
13class com.jeroenwijering.players.MediaPlayer extends AbstractPlayer {
14
15
16        /** Array with all config values **/
17        private var config:Object = {
18                clip:undefined,
19                height:260,
20                width:320,
21                controlbar:20,
22                displayheight:undefined,
23                displaywidth:undefined,
24                searchbar:'true',
25
26                file:undefined,
27                fallback:undefined,
28                image:undefined,
29                link:undefined,
30                id:undefined,
31                type:undefined,
32                captions:undefined,
33                audio:undefined,
34                category:undefined,
35
36                frontcolor:0x000000,
37                backcolor:0xffffff,
38                lightcolor:0x000000,
39                screencolor:0x000000,
40
41                autoscroll:"false",
42                largecontrols:"false",
43                logo:undefined,
44                showdigits:'true',
45                showdownload:'false',
46                showeq:'false',
47                showicons:'true',
48                shownavigation:'true',
49                showstop:'false',
50                thumbsinplaylist:'true',
51                usefullscreen:'true',
52                fsbuttonlink:undefined,
53
54                autostart:'false',
55                bufferlength:3,
56                overstretch:'false',
57                repeat:'list',
58                rotatetime:5,
59                shuffle:'false',
60                smoothing:'true',
61                volume:80,
62
63                bwfile:"100k.jpg",
64                bwstreams:undefined,
65                callback:undefined,
66                enablejs:'false',
67                javascriptid:'',
68                linkfromdisplay:'false',
69                linktarget:'_blank',
70                midroll:undefined,
71                prefix:'',
72                recommendations:undefined,
73                searchlink:'http://search.longtail.tv/?q=',
74                streamscript:undefined,
75                useaudio:'true',
76                usecaptions:'true',
77                usemute:'false',
78                usekeys:'true',
79
80                abouttxt:'JW Player 3.16',
81                aboutlnk:'http://www.jeroenwijering.com/?about=JW_FLV_Media_Player'
82        };
83
84
85        /** Constructor **/
86        public function MediaPlayer(tgt:MovieClip) {
87                super(tgt);
88        };
89
90
91        /** check bandwidth for streaming **/
92        private function checkStream() {
93                var ref = this;
94                var str = config["bwstreams"].split(",");
95                var bwc = new BandwidthCheck(config["bwfile"]);
96                bwc.onComplete = function(kbps) {
97                        trace("bandwidth: "+kbps);
98                        var bwc = new ContextMenuItem("Detected bandwidth: "+kbps+" kbps");
99                        bwc.separatorBefore = true;
100                        ref.manager.context.customItems.push(bwc);
101                        if(ref.config['enablejs'] == "true" &&
102                                flash.external.ExternalInterface.available) {
103                                flash.external.ExternalInterface.call("getBandwidth",kbps);
104                        }
105                        for (var i=1; i<str.length; i++) {
106                                if (kbps < Number(str[i])) {
107                                        ref.loadFile(str[i-1]);
108                                        return;
109                                }
110                        }
111                        ref.loadFile(str[str.length-1]);
112                };
113        };
114
115
116        /** Setup all necessary MCV blocks. **/
117        private function setupMCV() {
118                // set controller
119                controller = new PlayerController(config,feeder);
120                // set default views
121                var dpv = new DisplayView(controller,config,feeder);
122                var vws = new Array(dpv);
123                if(config['shownavigation'] == "true") {
124                        var cbv = new ControlbarView(controller,config,feeder);
125                        vws.push(cbv);
126                } else {
127                        config['clip'].controlbar._visible = false;
128                }
129                // set optional views
130                if(config["displayheight"] < config["height"]-config['controlbar']-config['searchbar'] ||
131                        config["displaywidth"] < config["width"]) {
132                        var plv = new PlaylistView(controller,config,feeder);
133                        vws.push(plv);
134                } else {
135                        config["clip"].playlist._visible =
136                                config["clip"].playlistmask._visible  = false;
137                }
138                if(config["usekeys"] == "true") {
139                        var ipv = new InputView(controller,config,feeder);
140                        vws.push(ipv);
141                }
142                if(config["showeq"] == "true") {
143                        var eqv = new EqualizerView(controller,config,feeder);
144                        vws.push(eqv);
145                } else {
146                        config["clip"].equalizer._visible = false;
147                }
148                var cpv = new CaptionsView(controller,config,feeder);
149                vws.push(cpv);
150                if(config['recommendations'] != undefined) {
151                        var rlv = new RecommendationsView(controller,config,feeder);
152                        vws.push(rlv);
153                } else {
154                        config["clip"].recommendations._visible = false;
155                }
156                if(config['searchbar'] > 0) {
157                        var sev = new SearchView(controller,config,feeder);
158                        vws.push(sev);
159                } else {
160                        config["clip"].search._visible = false;
161                }
162                if(config['midroll'] != undefined) {
163                        var mrv = new MidrollView(controller,config,feeder);
164                        vws.push(mrv);
165                } else {
166                        config["clip"].midroll._visible = false;
167                }
168                if(feeder.audio == true) {
169                        var adv = new AudioView(controller,config,feeder,true);
170                        vws.push(adv);
171                }
172                if(config["enablejs"] == "true") {
173                        var jsv = new JavascriptView(controller,config,feeder);
174                        vws.push(jsv);
175                }
176                if(config["callback"] != undefined) {
177                        var cav = new CallbackView(controller,config,feeder);
178                        vws.push(cav);
179                }
180                // set models
181                var mp3 = new MP3Model(vws,controller,config,feeder,config["clip"]);
182                var flv = new FLVModel(vws,controller,config,feeder,config["clip"].display.video);
183                var img = new ImageModel(vws,controller,config,feeder,config["clip"].display.image);
184                var ytm = new YoutubeModel(vws,controller,config,feeder,config["clip"].display.youtube);
185                var mds:Array = new Array(mp3,flv,img,ytm);
186                if(feeder.captions == true) { flv.capView = cpv; }
187                // start mcv cycle
188                controller.startMCV(mds);
189        };
190
191
192        /** Application startup, used for MTASC compilation **/
193        public static function main() {
194                var mpl = new MediaPlayer(_root.player);
195        }
196
197
198}
Note: See TracBrowser for help on using the browser.