我之前用的wimpy的flash音樂播放器其實不是免費的,從哪裡下載的我也忘了,只是網絡上到處都有,不過我用著不太放心,畢竟不是正版的,而且有個問題我一直沒法解決,就是它可以讀取文件的id3信息,但在flash中中文的id3信息變成了亂碼,我不知道在哪裡可以設置轉碼。不過我昨天終於找到了替代品flash_mp3_player,一個基於”Creative Commons License”的,源碼代也可以下載的 flash mp3 player。

下載回來後,試了一下,發現它是通過xml文件來保存播放列表的,默認情況下傳遞的是兩個配置文件,一個就是播放列表,一個是配置文件,播放列表很簡單,每首歌有三項內容:一個歌名,一個文件地址,一個文件信息。config.xml文件中設置了是否自動播放、是否隨機播放、循環的規則、音量、是否顯示播放列表及當前播放曲目的信息、以及文件信息的target,還有就是播放列表的文章顏色以及背景圖地址。

README: FLASH MP3 PLAYER 2.0

Thanks for downloading my Flash MP3 Player! The player supports streaming playback, RSS/XSPF playlists, various playmodes, color/size customization and a javascript API. Both the configuration options and support for dynamic webservices have been greatly improved in this update. This mp3player also replaces the Flash Single MP3 Player, whose functionality is fully incorporated.


兩個不同是在於,wimpy的插件比較多,新找到的這個插件比較少,但是我不需要太多功能,而且喜歡免費的東西,於是我就想辦法用新的播放器來替代wimpy,wimpy有個好處是可以直接讀取當前目錄的mp3文件,如果有目錄,在flash播放器中就可以直接進入下一級目錄,flash mp3 player是可以很容易地使用不同的播放列表,而且本身也比較簡單,還開源。我測試了中文播放清單發現字偏小於是在flash中將播放清單的文字改成了 12像素。

我的問題在於我想建立多個播放列表,flash mp3 player倒是直接支持了一些js函數來切換播放列表,不過我沒有試驗成功,可能是需要修改flash源碼吧,於是我就直接用了之前用過的土辦法,把 flash的object放在一個div中,當點擊不同的播放列表時,直接向這個div裡面innerHTML,寫入一段新的flash object。接下來就是如何方便地建立播放列表了。

由於我對php並不熟悉,於是我用的是在extras/playlist_examples目錄下找到的php_readdir_sample.php,直接讀取文件。只需要更改一下$directory,再在瀏覽器中運行一下,就可以得到$directory目錄下文件的播放清單xml文件。由於我想順便提供mp3的下載於是修改了一下php_readdir_sample.php,把<info></info>改成了<info>getfile.php?file=”.$directory.$items[$i].”</info>,為什麼加上getfile.php呢?是因為我看到了extras/force_download目錄下提供了一個getfile.php文件,用來下載的。使用的過程中發現getfile.php缺少了條件過濾,造成了可以下載站內所有的文件,這可不行,於是我加入了過濾條件,只允許下載mp3文件,其他的一概拒絕。

大家可以到//www.45eggs.com/index.php?op=Template&blogId=1&show=music(点击头部导航的”听听音乐“)試一試新的mp3 flash player:),不過要記得瀏覽器的flash插件需要是8.0版本的,7.0版本的可能會無法播放。

這裡順便提供出我修改過的flash_mp3_player,現在正在使用的播放器代碼,分享出來供朋友們一起研究。

flash_mp3_player.zip