Skip to content

不用audio-player插件也播放mp3

2010 四月 17
by 荒野无灯

添加wp短代码支持多种媒体文件的播放
支持mp3,wma,wav,mid,rm,rmvb,flv,swf,avi,mpg,mpeg,mov等格式 ,支持酷6、土豆、优酷视频引用。

注:原创文章,转载请务必注明出处。

方法很简单啦,三步就搞定了。
0×01:
将player.swf上传到当前所用主题的当前所用主题目录下的swf目录下面。(swf目录须自己建立)
0×02:
将以下代码加入header:

1
<script src="<?php bloginfo('template_directory'); ?>/js/swf.js"></script>

相关文件(js和swf)下载:


0×03:
再将以下代码加入当前所用主题的functions.php文件的php标签内:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//媒体文件播放支持
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="'.get_bloginfo('template_directory').'/swf/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>';
    }
}



function parseflv($url, $width, $height) {
    $lowerurl = strtolower($url);
    $flv = '';
    if($lowerurl != str_replace(array('player.youku.com/player.php/sid/','tudou.com/v/','player.ku6.com/refer/'), '', $lowerurl)) {
        $flv = $url;
    } elseif(strpos($lowerurl, 'v.youku.com/v_show/') !== FALSE) {
        if(preg_match("/http:\/\/v.youku.com\/v_show\/id_([^\/]+)(.html|)/i", $url, $matches)) {
            $flv = 'http://player.youku.com/player.php/sid/'.$matches[1].'/v.swf';
        }
    } elseif(strpos($lowerurl, 'tudou.com/programs/view/') !== FALSE) {
        if(preg_match("/http:\/\/(www.)?tudou.com\/programs\/view\/([^\/]+)/i", $url, $matches)) {
            $flv = 'http://www.tudou.com/v/'.$matches[2];
        }
    } elseif(strpos($lowerurl, 'v.ku6.com/show/') !== FALSE) {
        if(preg_match("/http:\/\/v.ku6.com\/show\/([^\/]+).html/i", $url, $matches)) {
            $flv = 'http://player.ku6.com/refer/'.$matches[1].'/v.swf';
        }
    } elseif(strpos($lowerurl, 'v.ku6.com/special/show_') !== FALSE) {
        if(preg_match("/http:\/\/v.ku6.com\/special\/show_\d+\/([^\/]+).html/i", $url, $matches)) {
            $flv = 'http://player.ku6.com/refer/'.$matches[1].'/v.swf';
        }
    }
    if($flv) {
        return '<script type="text/javascript" reload="1">document.write(AC_FL_RunContent(\'width\', \''.$width.'\', \'height\', \''.$height.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.$flv.'\', \'quality\', \'high\', \'bgcolor\', \'#ffffff\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\'));</script>';
    } else {
        return FALSE;
    }
}



function parsemedia($atts, $content=null) {
    extract(shortcode_atts(array('type'=>'swf',"width"=>640,'height'=>400,'autostart'=>0),$atts));
    $width = intval($width) > 800 ? 800 : intval($width);
    $height = intval($height) > 600 ? 600 : intval($height);
    if($flv = parseflv($content, $width, $height)) {
        return $flv;
    }
        $url = str_replace(array('<', '>'), '', str_replace('\\"', '\"', $content));
        switch($type) {
            case 'mp3':
            case 'wma':
            case 'ra':
            case 'ram':
            case 'wav':
            case 'mid':
                return parseaudio($url, $width, $autostart);
            case 'rm':
            case 'rmvb':
            case 'rtsp':
                $mediaid = 'media_'.random(3);
                return '<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="'.$width.'" height="'.$height.'"><param name="autostart" value="'.$autostart.'" /><param name="src" value="'.$url.'" /><param name="controls" value="imagewindow" /><param name="console" value="'.$mediaid.'_" /><embed src="'.$url.'" type="audio/x-pn-realaudio-plugin" controls="imagewindow" console="'.$mediaid.'_" width="'.$width.'" height="'.$height.'"></embed></object><br /><object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="'.$width.'" height="32"><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"'.($autostart ? ' autostart="true"' : '').'></embed></object>';
            case 'flv':
                return '<script type="text/javascript" reload="1">document.write(AC_FL_RunContent(\'width\', \''.$width.'\', \'height\', \''.$height.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \'images/common/flvplayer.swf\', \'flashvars\', \'file='.rawurlencode($url).'\', \'quality\', \'high\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\'));</script>';
            case 'swf':
                return '<script type="text/javascript" reload="1">document.write(AC_FL_RunContent(\'width\', \''.$width.'\', \'height\', \''.$height.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.$url.'\', \'quality\', \'high\', \'bgcolor\', \'#ffffff\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\'));</script>';
            case 'asf':
            case 'asx':
            case 'wmv':
            case 'mms':
            case 'avi':
            case 'mpg':
            case 'mpeg':
                return '<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="'.$width.'" height="'.$height.'"><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="'.$height.'"></embed></object>';
            case 'mov':
                return '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="'.$width.'" height="'.$height.'"><param name="autostart" value="'.($autostart ? '' : 'false').'" /><param name="src" value="'.$url.'" /><embed src="'.$url.'" autostart="'.($autostart ? 'true' : 'false').'" type="video/quicktime" controller="true" width="'.$width.'" height="'.$height.'"></embed></object>';
            default:
                return '<a href="'.$url.'" target="_blank">'.$url.'</a>';
   
    }
    return;
}

function parsemp3($atts, $content=null)
{
    return parsemedia(array('type'=>'mp3',"width"=>640,'height'=>400,'autostart'=>0),$content);
}

add_shortcode('media','parsemedia');
add_shortcode('audio','parsemp3');

哈哈,不单可以播放音乐,连土豆,优酷等网站的视频都可以播放呢。
测试一下看:

1
[media width=500 height=400]http://www.tudou.com/v/h_Q907I1PIU[/media]

使用方法:

1
2
[audio]mp3文件URL地址[/audio]
[media type=文件类型 width=宽 height=高]URL地址[/media]

音乐播放示例:


http://www.ihacklog.com/memory/music/xianjian-music.html
效果图:

扩展阅读:
这里也有两位童鞋也写了类似文章

http://immmmm.com/add-shortcodes-wordpress-theme.html

http://www.hzlzh.com/wordpress-music-flash-player/

喜欢这篇文章吗?

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

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

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

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

20 Responses Post a comment
  1. 十二月 13, 2011

    哈哈,过来求助哈。
    更新到3.3后,后台编辑框的按钮全部没了,求解哈。。
    :mrgreen:

  2. 七月 29, 2011

    谢谢。这里怎么回复不了。

  3. bionno permalink
    七月 25, 2011

    试了,mp3可以正常播放,但视频不能

  4. xuxiaoyi permalink
    十月 26, 2010

    不知道楼主这段代码在functions.php的什么地方插入·试了下不行······方便的话可以告诉我下不

  5. 九月 22, 2010

    今天试着制作成功啦

  6. 四月 18, 2010

    好东西啊,可不可以修改成跟以前插件的代码兼容哦。 不然的话 去掉插件,以前的就全部播放不了哦。以前的调用代码是[audio:MP3地址]

    • 四月 18, 2010

      @SKYOY, 嗯 ,我原来用的也是audio player这个插件,不过我觉得在phpmyadmin更新一下SQL更方便:

      1
      2
      UPDATE wp_posts SET post_content=REPLACE(post_content,'[audio:http://','[audio]http://');
      UPDATE wp_posts SET post_content=REPLACE(post_content,'.mp3]','.mp3[/audio]');
      • 四月 18, 2010

        @荒野无灯,

        太谢谢了 终于又可以少一个插件了。 曾以为最不可能删除的插件也可以去掉了 哈哈

      • 四月 18, 2010

        @荒野无灯,

        额 我忘记一个东西了。。我以前好[audio:MP3地址|titles=歌曲名称|loop=yes] 我像这样加了,会不会影响到播放呢? :smile:

        • 四月 19, 2010

          @SKYOY, 呃,这个有点麻烦了。我对正则不熟悉。如果没有加其它参数,也可以不更新数据库,直接在functions.php里面加个 filter:

          1
          2
          3
          4
          5
          6
          7
          function audio_player($content)
          {
              $pattern = "/\[audio:(([^]]+))\]/i";
              $content = preg_replace( $pattern,"[audio]$1[/audio]" , $content);
              return $content;
          }
          add_filter('the_content','audio_player',99);
  7. 四月 18, 2010

    厉害了,用了BBS的标签代码了~

    用这种方法有什么注意的地方吗?例如WP升级或者对主题的兼容性?

  8. 四月 17, 2010

    好办法,同样收下!

  9. 慕烨枫 permalink
    四月 17, 2010

    这个主题很稀饭
    不用误点了……

  10. 四月 17, 2010

    不客气了,收下咯,HOHO

Trackbacks & Pingbacks

  1. 换个拉风的播放器,咱也文艺一把 | Hacklog
  2. Wordpress 短代码应用2实例 « 可可唯一 i'm keqin

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