Changeset 284


Ignore:
Timestamp:
01/03/10 19:26:54 (12 years ago)
Author:
doryphores
Message:

Integrated Twones JS API

Location:
audio-player/trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • audio-player/trunk/build.xml

    r273 r284  
    9595                 
    9696                <condition property="swfExists"> 
    97                 <available file="${player.src.dir}/player.swf"/> 
    98             </condition> 
     97                        <available file="${player.src.dir}/player.swf"/> 
     98                </condition> 
    9999                 
    100100                <antcall target="-compileIfMissing"/> 
     
    119119                 
    120120                <concat destfile="${build.dir}/assets/audio-player.js" append="true"> 
    121                 <fileset dir="${plugin.src.dir}/assets"> 
    122                         <include name="lib/swfobject.js"/> 
    123                 </fileset> 
    124             </concat> 
     121                        <fileset dir="${plugin.src.dir}/assets"> 
     122                                <include name="lib/swfobject.js"/> 
     123                        </fileset> 
     124                </concat> 
    125125                 
    126126                <zip destfile="${dist.dir}/audio-player.zip"> 
     
    148148                 
    149149                <condition property="swfExists"> 
    150                 <available file="${player.src.dir}/player.swf"/> 
    151             </condition> 
     150                        <available file="${player.src.dir}/player.swf"/> 
     151                </condition> 
    152152                 
    153153                <antcall target="-compileIfMissing"/> 
     
    180180                 
    181181                <concat destfile="${build.dir}/audio-player.js" append="true"> 
    182                 <fileset dir="${plugin.src.dir}/assets"> 
    183                         <include name="lib/swfobject.js"/> 
    184                 </fileset> 
    185             </concat> 
     182                        <fileset dir="${plugin.src.dir}/assets"> 
     183                                <include name="lib/swfobject.js"/> 
     184                        </fileset> 
     185                </concat> 
    186186                 
    187187                <copy file="${plugin.src.dir}/license.txt" todir="${build.dir}"/> 
     
    201201                <copy file="swfcompile.template" tofile="swfcompile.jsfl" filtering="true"/> 
    202202                <replaceregexp file="swfcompile.jsfl" match="\\" replace="/" flags="g"/> 
    203             <exec executable="${flash.exe}"> 
    204                 <arg line="'${swfcompile.jsfl}'"/> 
    205             </exec> 
     203                <exec executable="${flash.exe}"> 
     204                        <arg line="'${swfcompile.jsfl}'"/> 
     205                </exec> 
    206206        </target> 
    207207         
  • audio-player/trunk/plugin/assets/audio-player.js

    r277 r284  
    1818        } 
    1919         
     20        function addListener (playerID, type, func) { 
     21                        getPlayer(playerID).addListener(type, func); 
     22        } 
     23         
    2024        return { 
    2125                setup: function (url, options) { 
    22                 playerURL = url; 
    23                 defaultOptions = options; 
    24             }, 
     26                        playerURL = url; 
     27                        defaultOptions = options; 
     28                }, 
    2529 
    2630                getPlayer: function (playerID) { 
    2731                        return getPlayer(playerID); 
    2832                }, 
    29              
    30             embed: function (elementID, options) { 
     33                 
     34                addListener: function (playerID, type, func) { 
     35                        addListener(playerID, type, func); 
     36                }, 
     37                 
     38                embed: function (elementID, options) { 
    3139                        var instanceOptions = {}; 
    32                 var key; 
    33                 var so; 
     40                        var key; 
     41                        var so; 
    3442                        var bgcolor; 
    3543                        var wmode; 
     
    3947                        var flashAttributes = {}; 
    4048         
    41                 // Merge default options and instance options 
     49                        // Merge default options and instance options 
    4250                        for (key in defaultOptions) { 
    43                     instanceOptions[key] = defaultOptions[key]; 
    44                 } 
    45                 for (key in options) { 
    46                     instanceOptions[key] = options[key]; 
    47                 } 
    48                  
     51                                instanceOptions[key] = defaultOptions[key]; 
     52                        } 
     53                        for (key in options) { 
     54                                instanceOptions[key] = options[key]; 
     55                        } 
     56                         
    4957                        if (instanceOptions.transparentpagebg == "yes") { 
    5058                                flashParams.bgcolor = "#FFFFFF"; 
     
    5967                        flashParams.menu = "false"; 
    6068                         
    61                 for (key in instanceOptions) { 
     69                        for (key in instanceOptions) { 
    6270                                if (key == "pagebg" || key == "width" || key == "transparentpagebg") { 
    6371                                        continue; 
    6472                                } 
    65                     flashVars[key] = instanceOptions[key]; 
    66                 } 
     73                                flashVars[key] = instanceOptions[key]; 
     74                        } 
    6775                         
    6876                        flashAttributes.name = elementID; 
     
    7583                         
    7684                        instances.push(elementID); 
    77             }, 
     85                }, 
    7886                 
    7987                syncVolumes: function (playerID, volume) {       
     
    92100 
    93101                        activePlayerID = playerID; 
    94                         if (defaultOptions.onStart) { 
    95                                 defaultOptions.onStart(playerID, info); 
    96                         } 
    97                 }, 
    98                  
    99                 onStop: function (playerID) { 
    100                         if (_options.onStop) { 
    101                                 _options.onStop(); 
    102                         } 
    103102                }, 
    104103                 
  • audio-player/trunk/plugin/assets/media-upload.js

    r279 r284  
    11var send_to_editor; 
    22 
    3 if (send_to_editor !== undefined) { 
     3addLoadEvent(function () { 
     4        if (send_to_editor !== undefined) { 
    45    send_to_editor_backup = send_to_editor; 
    56     
    67    send_to_editor = function(h) { 
    7         var matches = h.match(/<a ([^=]+=['\"][^\"']+['\"] )*href=['\"](\[audio:([^\"']+\.mp3)])['\"]( [^=]+=['\"][^\"']+['\"])*>([^<]+)<\/a>/i); 
    8         if (matches) { 
    9             h = matches[2]; 
    10             h = h.replace(/]$/i, "|titles=" + matches[5] + "]"); 
    11         } 
    12         return send_to_editor_backup.call(this, h); 
     8                  var matches = h.match(/<a ([^=]+=['\"][^\"']+['\"] )*href=['\"](\[audio:([^\"']+\.mp3)])['\"]( [^=]+=['\"][^\"']+['\"])*>([^<]*)<\/a>/i); 
     9      if (matches) { 
     10        h = matches[2]; 
     11                                if (matches[5].length > 0) { 
     12                h = h.replace(/]$/i, "|titles=" + matches[5] + "]"); 
     13                                } 
     14      } 
     15      return send_to_editor_backup.call(this, h); 
    1316    }; 
    14 } 
     17        } 
     18}); 
  • audio-player/trunk/plugin/languages/audio-player-fr_FR.po

    r281 r284  
    33"Project-Id-Version: audio-player\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2009-01-15 12:35+0100\n" 
    6 "PO-Revision-Date: 2009-01-15 12:37+0100\n" 
     5"POT-Creation-Date: 2010-01-02 21:02+0100\n" 
     6"PO-Revision-Date: 2010-01-02 21:05+0100\n" 
    77"Last-Translator: Martin <martin@1pixelout.net>\n" 
    88"Language-Team: \n" 
     
    3737msgstr "Clip audio : Le lecteur Adobe Flash (version 9 ou plus) est nécessaire pour la lecture de ce clip audio. Téléchargez la dernière version <a href=\"%s\" title=\"Download Adobe Flash Player\">ici</a>. Vous devez aussi avoir JavaScript activé dans votre navigateur." 
    3838 
     39#: ../audio-player.php:558 
     40#: ../audio-player.php:570 
     41msgid "You do not have sufficient permissions to access this page." 
     42msgstr "" 
     43 
    3944#: ../php/options-panel.php:10 
    4045#, php-format 
     
    399404msgstr "Coder les URLs des mp3" 
    400405 
     406#: ../php/options-panel.php:294 
     407msgid "Alternate content if Flash is not supported (experimental)" 
     408msgstr "Contenu alternatif pour les extraits (expérimental)" 
     409 
     410#: ../php/options-panel.php:303 
     411msgid "Save Changes" 
     412msgstr "" 
     413 
  • audio-player/trunk/plugin/languages/audio-player-zh_CN.po

    r281 r284  
    33"Project-Id-Version: audio-player\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2009-01-15 12:38+0100\n" 
    6 "PO-Revision-Date: 2009-01-15 12:40+0100\n" 
     5"POT-Creation-Date: 2010-01-02 21:02+0100\n" 
     6"PO-Revision-Date: 2010-01-02 21:02+0100\n" 
    77"Last-Translator: Martin <martin@1pixelout.net>\n" 
    88"Language-Team: \n" 
     
    3737msgstr "音频片段:需要 Adobe Flash Player ( 9 或以上版本) 播放音频片段。 点击<a href=\"%s\" title=\"下载 Adobe Flash Player\">这里</a>下载最新版本。您需要开启浏览器的 JavaScript 支持。" 
    3838 
     39#: ../audio-player.php:558 
     40#: ../audio-player.php:570 
     41msgid "You do not have sufficient permissions to access this page." 
     42msgstr "" 
     43 
    3944#: ../php/options-panel.php:10 
    4045#, php-format 
     
    399404msgstr "加密 mp3 URLs" 
    400405 
     406#: ../php/options-panel.php:294 
     407#, fuzzy 
     408msgid "Alternate content if Flash is not supported (experimental)" 
     409msgstr "文章摘要中替换的内容" 
     410 
     411#: ../php/options-panel.php:303 
     412msgid "Save Changes" 
     413msgstr "" 
     414 
  • audio-player/trunk/plugin/php/options-panel.php

    r281 r284  
    291291    </ul> 
    292292     
    293     <?php /* 
    294     <h3><?php _e('Alternate content if Flash is not supported', $this->textDomain) ?></h3> 
     293    
     294    <h3><?php _e('Alternate content if Flash is not supported (experimental)', $this->textDomain) ?></h3> 
    295295     
    296296    <p> 
    297297      <textarea name="ap_flashalternate" cols="60" rows="4" style="width: 80%"><?php echo htmlspecialchars($this->options["flashAlternate"]); ?></textarea> 
    298298    </p> 
    299      */ ?> 
     299     
    300300  </div> 
    301301 
  • audio-player/trunk/plugin/readme.txt

    r246 r284  
    44Donate link: http://www.wpaudioplayer.com 
    55Tags: media, audio, podcast, post 
    6 Requires at least: 2.1 
    7 Tested up to: 2.5.1 
     6Requires at least: 2.2 
     7Tested up to: 2.9 
    88Stable tag: 1.2.3 
    99 
  • audio-player/trunk/source/classes/Application.as

    r278 r284  
    6868                rtl:false 
    6969        }; 
     70         
     71        // A list for javascript listeners 
     72        private static var listeners:Array = []; 
    7073 
    7174        /** 
     
    113116                        ExternalInterface.addCallback("setVolume", Application, Application.ei_setVolume); 
    114117                         
     118                        //add event listeners for js 
     119                        ExternalInterface.addCallback("addListener", Application, Application.addJSListener); 
     120                        ExternalInterface.addCallback("removeListener", Application, Application.removeJSListener); 
     121                         
     122                         
    115123                        // Ask any other existing players for the current volume 
    116124                        var newVolume:Number = Number(ExternalInterface.call("AudioPlayer.getVolume", _options.playerID)); 
     
    125133                 
    126134                setInterval(_update, 100); 
     135                 
     136                // Notification that the app has loaded//started 
     137                if (ExternalInterface.available) { 
     138                        ExternalInterface.call("onWPPlayerReady", _options.playerID); 
     139                } 
    127140        } 
    128141         
     
    390403        public static function onPlay(trackIndex:Number):Void 
    391404        { 
    392                 _player.play(trackIndex); 
     405                _player.play(trackIndex, false); 
    393406 
    394407                // Tell any other players to stop playing (don't want no cacophony do we?) 
     
    396409                        ExternalInterface.call("AudioPlayer.activate", _options.playerID, _player.getState()); 
    397410                } 
    398  
     411                 
     412                // forward any relevent calls to js listeners 
     413                var tempObj:Object = _player.getState(); 
     414                forward("PLAY", tempObj.trackInfo); 
     415                 
    399416                // Show volume control 
    400417                volume_mc.toggleControl(true); 
     
    416433                 
    417434                // Toggle play button state (only if it's in pause state) 
    418                 if(control_mc.state == "pause") control_mc.toggle(); 
     435                if (control_mc.state == "pause") control_mc.toggle(); 
     436                 
     437                // forward any relevent calls to js listeners 
     438                forward("STOP"); 
    419439        } 
    420440         
     
    436456                // If player is open and animation is enabled, close the player 
    437457                if(_state > CLOSING && _options.animation) closePlayer(); 
     458                 
     459                // forward any relevent calls to js listeners 
     460                forward("PAUSE"); 
    438461        } 
    439462 
     
    460483                        ExternalInterface.call("AudioPlayer.syncVolumes", _options.playerID, volume); 
    461484                } 
     485        } 
     486         
     487        /** 
     488        * onMetaData event handler 
     489        * called from Player.as by broadcastmessage 
     490        */ 
     491        public static function onMetaData():Void 
     492        { 
     493                var tempObj:Object = _player.getState(); 
     494                forward("METADATA", tempObj.trackInfo); 
    462495        } 
    463496 
     
    596629                                                        message += playerState.trackInfo.artist; 
    597630                                                        if(playerState.trackInfo.artist.length > 0) message += " - "; 
    598                                                         message += playerState.trackInfo.songname; 
     631                                                        message += playerState.trackInfo.title; 
    599632                                                } 
    600633                                                else message = "Track #" + (playerState.trackIndex + 1); 
     
    656689                onPlay(trackIndex); 
    657690        } 
     691 
    658692         
    659693        private static function ei_setVolume(newVolume:Number):Void 
     
    666700                _player.stop(false); 
    667701                onStop(); 
     702                 
    668703                _player.loadPlaylist(sourceFile, titles, artists); 
    669704        } 
     705         
     706        // new ei calls to add remove listeners and forward messages 
     707        private static function addJSListener(typ:String, fcn:String):Boolean 
     708        { 
     709                var upperCaseType:String = typ.toUpperCase() 
     710                listeners.push({type:upperCaseType, callee:fcn}); 
     711                return true; 
     712        } 
     713         
     714        private static function removeJSListener(typ:String, fcn:String):Boolean  
     715        { 
     716                for(var i:Number=0; i<listeners.length; i++) { 
     717                        if( listeners[i]['type'] == typ && listeners[i]['callee'] == fcn) { 
     718                                listeners.splice(i,1); 
     719                                return; 
     720                        } 
     721                } 
     722                 
     723                return 
     724        }; 
     725         
     726        // Send event to listeners. 
     727        private static function forward(typ:String, dat:Object):Void  
     728        { 
     729                if (!dat) { dat = new Object(); } 
     730                dat.playerID = _options.playerID 
     731                 
     732                for (var itm:String in listeners) { 
     733                        if (listeners[itm]['type'] == typ) { 
     734                                ExternalInterface.call(listeners[itm]['callee'], dat); 
     735                        } 
     736                } 
     737        }; 
    670738} 
  • audio-player/trunk/source/classes/net/onepixelout/audio/Player.as

    r277 r284  
    107107        * Starts the player 
    108108        */ 
    109         public function play(trackIndex:Number):Void 
     109        public function play(trackIndex:Number, broadcast:Boolean):Void 
    110110        { 
    111111                // If already playing, do nothing 
    112112                if(_state == PLAYING && _playlist.getCurrentIndex() == trackIndex) return; 
     113                 
     114                if(broadcast == undefined) broadcast = true; 
     115                 
     116                // Tell anyone interested that the player has stopped 
     117                if(broadcast) broadcastMessage("onPlay"); 
    113118                 
    114119                if (_playlist.length > 1 && trackIndex != undefined && _playlist.getCurrentIndex() != trackIndex) { 
     
    333338                         
    334339                        // Update track info if ID3 tags are available 
    335                         if(!currentTrack.isID3Loaded() && _playhead.id3.songname.length > 0) currentTrack.setInfo(); 
     340                        if(!currentTrack.isID3Loaded() && _playhead.id3.songname.length > 0)  
     341                        {  
     342                                currentTrack.setInfo(); 
     343                                broadcastMessage("onMetaData"); 
     344                        } 
    336345                } 
    337346        } 
     
    405414        public function loadPlaylist(trackFileList:String, titleList:String, artistList:String):Void 
    406415        { 
    407                 if(titleList == undefined) titleList = ""; 
    408                 if(artistList == undefined) artistList = ""; 
     416                //if(titleList == undefined) titleList = ""; 
     417                //if(artistList == undefined) artistList = ""; 
    409418                _playlist = new Playlist(_options.enableCycling); 
    410419                _playlist.loadFromList(trackFileList, titleList, artistList); 
  • audio-player/trunk/source/classes/net/onepixelout/audio/Playlist.as

    r277 r284  
    3333                        if(i < titleArray.length) { 
    3434                                newTrack.setTitle(titleArray[i]); 
    35                                 newTrack.setArtist(""); 
     35                                //newTrack.setArtist(""); 
    3636                        } 
    3737                        if(i < artistArray.length) newTrack.setArtist(artistArray[i]); 
  • audio-player/trunk/source/classes/net/onepixelout/audio/Track.as

    r230 r284  
    1616        private var _id3Loaded:Boolean; // TRUE = ID3 tags already loaded 
    1717        private var _id3Tags:Object; // All ID3 tag information (direct link to ID3 structure of sound object) 
    18  
     18         
    1919        function Track(src:String, title:String, artist:String) 
    2020        { 
     
    2626                _notFound = false; 
    2727                 
    28                 _id3Tags = new Object(); 
    29  
    30                 if(title != undefined && artist != undefined) 
    31                 { 
    32                         _id3Tags.songname = title; 
    33                         _id3Tags.artist = artist; 
    34                         _id3Loaded = true; 
    35                 } 
     28                _id3Tags = {}; 
     29                _id3Tags.location = _src; 
     30                _id3Tags.title = title; 
     31                _id3Tags.artist = artist; 
     32                 
    3633        } 
    3734         
    3835        public function setTitle(title:String):Void 
    3936        { 
    40                 _id3Tags.songname = title; 
    41                 _id3Loaded = true; 
     37                _id3Tags.title = title; 
    4238        } 
    4339         
     
    4541        { 
    4642                _id3Tags.artist = artist; 
    47                 _id3Loaded = true; 
    4843        } 
    4944         
     
    9893        public function setInfo():Void 
    9994        { 
    100                 _id3Tags = _soundObject.id3; 
     95                _id3Tags.album = _soundObject.id3.album; 
     96                if (_id3Tags.title == undefined) _id3Tags.title = _soundObject.id3.songname; 
     97                if (_id3Tags.artist == undefined) _id3Tags.artist = _soundObject.id3.artist; 
    10198                _id3Loaded = true; 
    10299        } 
     
    104101        public function getInfo():Object 
    105102        { 
     103                 
    106104                return _id3Tags; 
    107105        } 
Note: See TracChangeset for help on using the changeset viewer.