- Timestamp:
- 05/18/12 08:30:24 (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/jw6/src/flash/com/longtailvideo/jwplayer/model/PlaylistItem.as
r2193 r2202 29 29 30 30 public function PlaylistItem(obj:Object = null) { 31 if (obj && obj.sources is Array) { 31 if (!obj) obj = {}; 32 33 if (obj.sources is Array) { 32 34 obj.levels = obj.sources; 33 35 delete obj.sources; 36 } 37 38 if (!obj.levels && obj.file) { 39 var singleLevel:Object = { 40 file: obj.file, 41 type: obj.type, 42 width: obj.width, 43 label: obj.label 44 }; 45 delete obj.file; 46 delete obj.type; 47 delete obj.width; 48 delete obj.label; 49 obj.levels = [singleLevel]; 34 50 } 35 51 … … 71 87 } 72 88 73 74 89 /** File property is now a getter, to take levels into account **/ 75 90 public function get file():String { … … 109 124 /** Insert an additional bitrate level, keeping the array sorted from highest to lowest. **/ 110 125 public function addLevel(newLevel:PlaylistItemLevel):void { 111 if (validExtension(newLevel .file)) {126 if (validExtension(newLevel)) { 112 127 if (_currentLevel < 0) _currentLevel = 0; 113 128 for (var i:Number = 0; i < _levels.length; i++) { … … 144 159 * This is useful for unified HTML5 / Flash failover setups. 145 160 **/ 146 protected function validExtension(filename:String):Boolean { 147 switch(Strings.extension(filename)) { 148 case "ogv": 149 case "ogg": 150 case "webm": 151 return false; 152 default: 153 return true; 154 } 161 protected function validExtension(level:Object):Boolean { 162 return levelType(level); 155 163 } 156 164 … … 205 213 } 206 214 207 public function get provider():String { return _provider; } 215 private function levelType(level:Object):String { 216 if (level) { 217 var type:String = level.type ? level.type : Strings.extension(level.file); 218 switch (type) { 219 case "flv": 220 case "f4v": 221 case "mov": 222 case "m4a": 223 case "m4v": 224 case "mp4": 225 case "aac": 226 return "video"; 227 break; 228 case "mp3": 229 return "sound"; 230 break; 231 case "smil": 232 return "rtmp"; 233 break; 234 case "m3u8": 235 return "hls"; 236 break; 237 } 238 } 239 return null; 240 } 241 242 public function get provider():String { 243 if (_provider) { 244 return _provider; 245 } else if (_levels.length > 0) { 246 return levelType(_levels[_currentLevel]); 247 } 248 return null; 249 } 208 250 public function set provider(p:*):void { 209 251 _provider = (p == "audio") ? "sound" : p;
Note: See TracChangeset
for help on using the changeset viewer.
