Skip to content

为discuz添加漂亮的mp3播放器[适合discuz 7.2/discuz X2]

2010 四月 24
by 荒野无灯

dz自带的那个实在太丑了,呵呵,换成这个效果怎么样?
看图:

discuz 7.2修改方法

修改 include/discuzcode.func.php中的parseaudio函数为如下即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function parseaudio($url, $width = 400, $autostart = 0) {
    $ext = strtolower(substr(strrchr($url, '.'), 1, 5));
    switch($ext) {
        case 'mp3':
            $auto=$autostart?'yes':'no';       
                return '<embed src="images/common/player.swf?soundFile='.$url.'&autostart='.$auto.'&animation=yes&encode=no&initialvolume=80&remaining=yes&noinfo=no&buffer=5&checkpolicy=no&rtl=no&bg=E5E5E5&text=333333&leftbg=CCCCCC&lefticon=333333&volslider=666666&voltrack=FFFFFF&rightbg=B4B4B4&rightbghover=999999&righticon=333333&righticonhover=FFFFFF&track=FFFFFF&loader=009900&border=CCCCCC&tracker=DDDDDD&skip=666666" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" width="290" height="30">';
        case 'wma':
        case 'mid':
        case 'wav':
            return '<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="'.$width.'" height="64"><param name="invokeURLs" value="0"><param name="autostart" value="'.$autostart.'" /><param name="url" value="'.$url.'" /><embed src="'.$url.'" autostart="'.$autostart.'" type="application/x-mplayer2" width="'.$width.'" height="64"></embed></object>';
        case 'ra':
        case 'rm':
        case 'ram':
            $mediaid = 'media_'.random(3);
            return '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="'.$width.'" height="32"><param name="autostart" value="'.$autostart.'" /><param name="src" value="'.$url.'" /><param name="controls" value="controlpanel" /><param name="console" value="'.$mediaid.'_" /><embed src="'.$url.'" type="audio/x-pn-realaudio-plugin" controls="ControlPanel" console="'.$mediaid.'_" width="'.$width.'" height="32"></embed></object>';
    }
}

flash播放器下载地址: http://wordpress.org/extend/plugins/audio-player/
这是一个用于wp的插件,下载后从中提取出那个flash播放器上传到论坛images/common/下 就OK了。 :mrgreen:


discuz X2 修改方法

把上面说到的flash文件更名为wpaudio_mp3player.swf ,放到static/image/common 目录下面。
再修改source/function/function_discuzcode.php第348行parseaudio()函数,在case ‘mp3′: 后面加上:

1
2
        $auto=$autostart?'yes':'no';        
            return '<embed src="'.STATICURL.'image/common/wpaudio_mp3player.swf?soundFile='.base64_encode($url).'&autostart='.$auto.'&animation=yes&encode=yes&initialvolume=80&remaining=yes&noinfo=no&buffer=5&checkpolicy=no&rtl=no&bg=E5E5E5&text=333333&leftbg=CCCCCC&lefticon=333333&volslider=666666&voltrack=FFFFFF&rightbg=B4B4B4&rightbghover=999999&righticon=333333&righticonhover=FFFFFF&track=FFFFFF&loader=009900&border=CCCCCC&tracker=DDDDDD&skip=666666" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" width="290" height="30">';

这里帖出修改后的完整代码吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function parseaudio($url, $width = 400) {
    $ext = strtolower(substr(strrchr($url, '.'), 1, 5));
    switch($ext) {
        case 'mp3':
        $auto=$autostart?'yes':'no';        
            return '<embed src="'.STATICURL.'image/common/wpaudio_mp3player.swf?soundFile='.base64_encode($url).'&autostart='.$auto.'&animation=yes&encode=yes&initialvolume=80&remaining=yes&noinfo=no&buffer=5&checkpolicy=no&rtl=no&bg=E5E5E5&text=333333&leftbg=CCCCCC&lefticon=333333&volslider=666666&voltrack=FFFFFF&rightbg=B4B4B4&rightbghover=999999&righticon=333333&righticonhover=FFFFFF&track=FFFFFF&loader=009900&border=CCCCCC&tracker=DDDDDD&skip=666666" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" width="290" height="30">';
        case 'wma':
        case 'mid':
        case 'wav':
            return '<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="'.$width.'" height="64"><param name="invokeURLs" value="0"><param name="autostart" value="0" /><param name="url" value="'.$url.'" /><embed src="'.$url.'" autostart="0" type="application/x-mplayer2" width="'.$width.'" height="64"></embed></object>';
        case 'ra':
        case 'rm':
        case 'ram':
            $mediaid = 'media_'.random(3);
            return '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="'.$width.'" height="32"><param name="autostart" value="0" /><param name="src" value="'.$url.'" /><param name="controls" value="controlpanel" /><param name="console" value="'.$mediaid.'_" /><embed src="'.$url.'" autostart="0" type="audio/x-pn-realaudio-plugin" controls="ControlPanel" console="'.$mediaid.'_" width="'.$width.'" height="32"></embed></object>';
    }
}

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=3709

6 Responses Post a comment
  1. 十一月 23, 2011

    这个播放器比自带好多了,自带的最痛苦的是他还不自动播放,郁闷,早就想改了,感谢荒野无灯分享!

  2. 十月 15, 2011

    楼主好,用你的方法后,音频无法显示,Discuz X2版本。

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS