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

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填写您的邮件地址,订阅我们的精彩内容:

相关日志

回复 (6)

  1. 清音陋屋  / 回复

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

  2. 哇塞网  / 回复

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

    • 荒野无灯  / 回复

      @哇塞网
      这个代码是7.2版的时候的,现在的X2的我没看呢。不过应该也差不太多,但是肯定不能完全按上面的来的。

      • 哇塞网  / 回复

        @荒野无灯
        X2在插入音频代码方面确实有点改变,不过你做的这种播放器方式真的太棒了!请抽空看看怎么修改,帮帮大家吧!

    • 荒野无灯  / 回复

      @哇塞网
      文章已经更新,支持X2

发表评论 修改评论取消编辑

允许使用的标签 - 您可以在评论中使用如下的 HTML 标签以及属性。

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

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

引用通告 (0)

› 尚无引用通告。

开灯