Ignore:
Timestamp:
05/18/12 08:30:24 (13 months ago)
Author:
pablo
Message:

Cleaning up mode detection in embedder and Flash player.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/model/PlaylistItem.as

    r2193 r2202  
    2929                 
    3030                public function PlaylistItem(obj:Object = null) { 
    31                         if (obj && obj.sources is Array) { 
     31                        if (!obj) obj = {}; 
     32                         
     33                        if (obj.sources is Array) { 
    3234                                obj.levels = obj.sources; 
    3335                                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]; 
    3450                        } 
    3551                         
     
    7187                } 
    7288                 
    73  
    7489                /** File property is now a getter, to take levels into account **/ 
    7590                public function get file():String { 
     
    109124                /** Insert an additional bitrate level, keeping the array sorted from highest to lowest. **/ 
    110125                public function addLevel(newLevel:PlaylistItemLevel):void { 
    111                         if (validExtension(newLevel.file)) { 
     126                        if (validExtension(newLevel)) { 
    112127                                if (_currentLevel < 0) _currentLevel = 0; 
    113128                                for (var i:Number = 0; i < _levels.length; i++) { 
     
    144159                 * This is useful for unified HTML5 / Flash failover setups. 
    145160                 **/ 
    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); 
    155163                } 
    156164 
     
    205213                } 
    206214 
    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                } 
    208250                public function set provider(p:*):void { 
    209251                        _provider = (p == "audio") ? "sound" : p; 
Note: See TracChangeset for help on using the changeset viewer.