立即注册 登录
彼岸网 返回首页

天香公主的个人空间 http://www.bian-wang.com/discuz/?10005 [收藏] [复制] [分享] [RSS] txgz999@yahoo.com

日志

用mejs播放器来替代失效的Discuz播放器

热度 4已有 2194 次阅读2016-5-8 11:04 PM |个人分类:Discuz| Flash动画, mp3音乐, 播放器, 音乐盒, 如何

几年前Discuz因为安全原因撤下了三款基于Flash的播放器:个人空间里播放音乐盒的mp3player.swf,播放mp3音乐的player.swf, 和播放flv格式的Flash文件的flvplayer.swf,使得Discuz网站上音乐盒,mp3音乐,和flv格式的Flash动画无法照常使用。至今尚未解决。所以本文讨论下如何用一个叫MediaElement.js (简称mejs)的html5播放器来替代上述失效的三种播放器。
Before After

首先我们要做些准备工作:将jQuery库和mejs库下载到网站上。然后要修改文件 template/default/common/header_common.htm,在它的最后添加 <script type="text/javascript" src="{$_G[setting][jspath]}jquery.min.js"></script> <script type="text/javascript" src="{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js"></script> <link rel="stylesheet" href="{$_G[setting][jspath]}mediaelement/mediaelementplayer.min.css" /> <script type="text/javascript"> var jqm = jQuery.noConflict(true); </script> 这里我们假定网站将jQuery库放在statis/js,将meja库放在static/js/mediaelement,不然要改动上面的代码指向实际地址。 上面这句jQuery代码的作用见我前文(链接)第二部分里的说明。

1。替换音乐播放器
a)替换论坛中的音乐播放器
设置界面 旧播放器 新播放器
需要改动的代码在文件 source/function/function_discuzcode.php 里,将函数 parseaudio 中的下面这句 return '<span id="'.$randomid.'"></span><script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'FlashVars\', \'soundFile='.urlencode($url).'\', \'width\', \'290\', \'height\', \'24\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.STATICURL.'image/common/player.swf\', \'quality\', \'high\', \'bgcolor\', \'#FFFFFF\', \'menu\', \'false\', \'wmode\', \'transparent\', \'allowNetworking\', \'internal\');</script>'; 改为 return '<audio id="'.$randomid.'" controls preload type="audio/mp3" width="290" src="'.$url.'" ></audio><script type="text/javascript">jqm("#'.$randomid.'").mediaelementplayer();</script>';
b)替换日志中的音乐播放器

需要改动的代码在文件 source/function/function_blog.php 里,将函数 blog_flash 中的下面这段 $swf_url = urlencode(str_replace('&amp;', '&', $swf_url)); $html = '<object id="audioplayer_SHAREID" height="24" width="290" data="'.STATICURL.'image/common/player.swf" type="application/x-shockwave-flash"> <param value="'.STATICURL.'image/common/player.swf" name="movie"/> <param value="autostart=yes&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0xF06A51&rightbghover=0xAF2910&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0xAF2910&soundFile='.$swf_url.'" name="FlashVars"/> <param value="high" name="quality"/> <param value="false" name="menu"/> <param name="allowscriptaccess" value="never"> <param name="allowNetworking" value="internal"> <param value="#FFFFFF" name="bgcolor"/> </object>'; 改为 return '<audio id="audioplayer_SHAREID" controls preload type="audio/mp3" width="290" src="'.$swf_url.'" ></audio><script type="text/javascript">jqm("#audioplayer_SHAREID").mediaelementplayer();</script>';
c)替换分享中的音乐播放器
需要改动的代码在文件 static/js/home.js 里,将函数 showFlash 中的下面这句 var musicFlash = '<object id="audioplayer_SHAREID" height="24" width="290" data="' + STATICURL + 'image/common/player.swf" type="application/x-shockwave-flash">' + '<param value="' + STATICURL + 'image/common/player.swf" name="movie"/>' + '<param value="autostart=yes&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0xF06A51&rightbghover=0xAF2910&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0xAF2910&soundFile=FLASHADDR" name="FlashVars"/>' + '<param value="high" name="quality"/>' + '<param value="false" name="menu"/>' + '<param value="#FFFFFF" name="bgcolor"/>' + '</object>'; 改为 var musicFlash = '<audio id="audioplayer_SHAREID" controls preload autoplay type="audio/mp3" src="' + flashvar + '"></audio><script type="text/javascript">jqm("#audioplayer_SHAREID").mediaelementplayer({ audioWidth: 290 });</script>'; 再在同一个函数里稍后的这句 flashObj.innerHTML = flashHtml; 后加上 // http://stackoverflow.com/questions/2592092/executing-script-elements-inserted-with-innerhtml var codes = flashObj.getElementsByTagName("script"); for (var i = 0; i < codes.length; i++) eval(codes[i].text); 最后再将函数 stopMusic 里的这句 $(musicFlash).SetVariable('closePlayer', 1); 改成 $(musicFlash).player.pause();
2。替换视频播放器
a)替换论坛中的视频播放器
在页面上有两个地方可以添加flv视频:
旧播放器 新播放器
需要改动的代码在文件 source/function/function_discuzcode.php 里,将函数 parsemedia 中的下面这句 return '<span id="'.$randomid.'"></span><script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'width\', \''.$width.'\', \'height\', \''.$height.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.STATICURL.'image/common/flvplayer.swf\', \'flashvars\', \'file='.rawurlencode($url).'\', \'quality\', \'high\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\');</script>'; 改成 return '<video id="'.$randomid.'" controls preload width="'.$width.'" height="'.$height.'" src="'.$url.'" ></video><script type="text/javascript">jqm("#'.$randomid.'").mediaelementplayer();</script>';
b)替换日志中的视频播放器

需要改动的代码在文件 source/function/function_blog.php 里,将函数 blog_flash 中的下面这段 $html = '<span id="'.$randomid.'"></span><script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'width\', \''.$width.'\', \'height\', \''.$height.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.STATICURL.'image/common/flvplayer.swf\', \'flashvars\', \'file='.rawurlencode($swf_url).'\', \'quality\', \'high\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\');</script>'; 改成 $html = '<video id="'.$randomid.'" controls preload width="'.$width.'" height="'.$height.'" src="'.$swf_url.'" ></video><script type="text/javascript">jqm("#'.$randomid.'").mediaelementplayer();</script>';
c)替换分享中的视频播放器
需要改动的代码在文件 source/include/spacecp/spacecp_share.php 里,将下面这句 'flv' => $_G['style']['imgdir'].'/flvplayer.swf?&autostart=true&file='.urlencode($link), 改成 'flv' => $link, 再在文件 static/js/home.js 里,将函数 showFlash 中的下面这句 var videoFlash = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="480" height="450">' + '<param value="transparent" name="wmode"/>' + '<param value="FLASHADDR" name="movie" />' + '<param name="allowScriptAccess" value="never" />' + '<param name="allowNetworking" value="none" />' + '<embed src="FLASHADDR" wmode="transparent" allowfullscreen="true" type="application/x-shockwave-flash" width="480" height="450" allowScriptAccess="never" allowNetworking="internal"></embed>' + '</object>'; 后加上 var videoHtml5 = '<video id="videoplayer_SHAREID" controls preload autoplay width="480" height="450" src="' + flashvar + '" ></video><script type="text/javascript">jqm("#videoplayer_SHAREID").mediaelementplayer();</script>'; 再在同一个函数里稍后的这句 flashvar = encodeURI(flashvar); 前加上 var flvReg = new RegExp('.flv$', 'ig'); if (flvReg.test(flashvar)) { flashHtml = videoHtml5; } 上面的修改仅涉及原来Discuz的支持flv格式的视频播放器。但在这基础上略做改动也能支持当前最流行的视频格式mp4。
a)论坛
首先要改动文件 static/js/editor.js 将下面这句 ext = in_array(ext, ['mp3', 'wma', 'ra', 'rm', 'ram', 'mid', 'asx', 'wmv', 'avi', 'mpg', 'mpeg', 'rmvb', 'asf', 'mov', 'flv', 'swf']) ? ext : 'x'; 改成 ext = in_array(ext, ['mp4', 'mp3', 'wma', 'ra', 'rm', 'ram', 'mid', 'asx', 'wmv', 'avi', 'mpg', 'mpeg', 'rmvb', 'asf', 'mov', 'flv', 'swf']) ? ext : 'x'; 其次在文件 source/function/function_discuzcode.php 里,将函数 parsemedia 中的下面这句 case 'flv': 后加上 case 'mp4': b)日志
不需额外改动
c)分享
在文件 source/include/spacecp/spacecp_share.php 里,将下面这句 if(empty($flashvar) && preg_match("/\.flv$/i", $link)) { 改成 if(empty($flashvar) && preg_match("/\.(flv|mp4)$/i", $link)) { 再在文件 static/js/home.js 里,将函数 showFlash 中的下面这句 var flvReg = new RegExp('.flv$', 'ig'); 改成 var flvReg = new RegExp('.(flv|mp4)$', 'ig');
3。替换个人空间里的音乐盒
在前文( 链接 )中我们讨论过基于mejs的音乐盒插件,它能够即插即用,不影响网站里的其它功能。不管是用插件还是修改代码,为了有统一的风格,整个网站最好还是用同一个播放器。
旧播放器 新播放器
下面我们讨论通过修改代码来使用基于mejs的音乐盒。除了用mejs外,还有用到一个mejs插件 mep-feature-playlist-master 和一个jQuery插件m-custom-scrollbar。首先将前面对 template/default/common/header_common.htm 的修改再改为 <script type="text/javascript" src="{$_G[setting][jspath]}jquery.min.js"></script> <script type="text/javascript" src="{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js"></script> <script type="text/javascript" src="{$_G[setting][jspath]}mep-feature-playlist-master/mep-feature-playlist.js"></script> <script type="text/javascript" src="{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js"></script> <link rel="stylesheet" href="{$_G[setting][jspath]}mediaelement/mediaelementplayer.min.css" /> <link href="{$_G[setting][jspath]}mep-feature-playlist-master/mep-feature-playlist.css" rel="stylesheet" /> <link href="{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet" /> <script type="text/javascript"> var jqm = jQuery.noConflict(true); </script> 接着要修改的代码是文件 source/function/function_space.php 里的函数 getblockhtml 中的有关 music 的部分: $authcode = substr(md5($_G['authkey'].$uid), 6, 16); $view = ($_G['adminid'] == 1 && $_G['setting']['allowquickviewprofile']) ? '&view=admin' : ''; $querystring = urlencode("home.php?mod=space&uid=$uid&do=index&op=getmusiclist&hash=$authcode$view&t=".TIMESTAMP); $swfurl = STATICURL.'image/common/mp3player.swf?config='.$querystring; if(empty($parameters['config']['height']) && $parameters['config']['height'] !== 0) { $parameters['config']['height'] = '200px'; } else { $parameters['config']['height'] .= 'px'; } $html = "<script language=\"javascript\" type=\"text/javascript\">document.write(AC_FL_RunContent('id', 'mp3player', 'name', 'mp3player', 'devicefont', 'false', 'width', '100%', 'height', '".$parameters['config']['height']."', 'src', '$swfurl', 'menu', 'false', 'allowScriptAccess', 'never', 'swLiveConnect', 'true', 'wmode', 'transparent'));</script>"; 将它改为 if(empty($parameters['config']['height']) && $parameters['config']['height'] !== 0) { $height = 200; } else { $height = $parameters['config']['height']; } $plheight = $height - 28; $shuffle = ($parameters['config']['shuffle'])?'true':'false'; $autoplay = $parameters['config']['autorun']; $showmodbig = ($parameters['config']['showmod']=='big'); $audioHeight = 30; if ($showmodbig) { $audioHeight += 50; $plheight -= 50; } $html = <<<EOF <style> .mejs-layers .mejs-playlist { overflow-x: hidden; overflow-y: auto; } ul.mejs li { width: 100%; font-size: 10px; text-align: left; padding-left: 6px; } .mejs-playlist li:hover { color: white; } .mejs-playlist li.current { color: yellow; font-weight: bold; } .mejs-poster { max-width: 40px; max-height: 40px; margin: 5px; } .mejs-title { position: absolute; left: 50px; top: 0px; margin: 10px; color: white; font-size: 10px; font-weight: bold; width: auto !important; } .ml span { color: white; } .mejs-controls .mejs-volume-button .mejs-volume-slider { height: 65px; top: -65px; } .mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total { height: 50px; } .mCSB_scrollTools { width: 8px; } .mCSB_inside > .mCSB_container { margin-right: 0; } .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 0.5); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 0.8); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 1); } .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { margin: 1px 0; } .mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools { opacity: 1; } .mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail { background-color: darkgray; } .mejs-layers .mejs-playlist { height: {$plheight}px !important; } EOF; if ($showmodbig==false) { $html .= <<<EOF .mejs-poster, .mejs-title { left: -9999px; } EOF; } $html .= <<<EOF </style> <audio id="mejs" type="audio/mp3" controls="controls" width="100%" EOF; if ($autoplay == 'true') $html .= ' autoplay="autoplay"'; $html .= '>'; foreach ($parameters['mp3list'] as $mp3) { $html .= '<source src="'.$mp3[mp3url].'" title="'.$mp3[mp3name].'" data-poster="'.$mp3[cdbj].'"></source>'; } $html .= <<<EOF </audio> <script type="text/javascript"> jqm(document).ready(function () { jqm("#music_content > .ml").height({$height}); jqm('#mejs').mediaelementplayer({ loop: true, shuffle: {$shuffle}, playlist: true, audioHeight: {$audioHeight}, audioVolume: "vertical", playlistposition: 'bottom', features: ['playlistfeature', 'prevtrack', 'playpause', 'stop', 'nexttrack', 'current', 'progress', 'duration', 'volume'], keyActions: [] }); if (jqm('#music_content > .ml').width() < 250) { jqm('.mejs-prevtrack-button, .mejs-nexttrack-button').css({ 'display': 'none' }); } // remove a suspicious element that causes the page content to be smaller on iPhone and iPad jqm('.mejs-offscreen').remove(); jqm('.mejs-playlist').mCustomScrollbar({ theme: "minimal" }); }); </script> EOF;
下载链接: http://www.bian-wang.com/upload/txgz_player_discuz2mejs_160509.zip

发表评论 评论 (59 个评论)

回复 牛肉炖土豆 2017-9-13 11:47 PM
此教程,一步一步做了,最后成功了,IE,谷歌浏览器测试正常(MP4)

然后我去mediaelementjs下载了最新版,最新版支持youtube,Facebook,Twitch,rtmp,m2u8等等,功能超强大
所以又心动,准备换上新版,我把新版里的对应文件mediaelement-and-player.min.js覆盖替换后,测试发现只有谷歌浏览器正常,IE8无效了,请问此播放器库如何升级呢?
回复 天香公主 2017-5-24 08:51 PM
carry0987: 天香,有沒有可能可以讓帖子 能夠使用,mejs的list插件,讓帖子內可以使用跟音樂盒一樣的音樂列表?
http://www.bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&id=1747
回复 carry0987 2017-5-7 03:22 AM
天香,有沒有可能可以讓帖子 能夠使用,mejs的list插件,讓帖子內可以使用跟音樂盒一樣的音樂列表?
回复 天香公主 2016-5-14 06:54 PM
carry0987: 那...要不乾脆把media的那個選項也整合到flash的那個選項?
有意思,我写了篇博文讨论这个问题 http://www.bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&id=1488
回复 天香公主 2016-5-13 07:37 PM
夙興夜寐罔徒勞: (⊙o⊙)…我是自己上传的视频网页:
http://my.tv.sohu.com/us/294324758/83815891.shtml
底下点 分享获取flash地址得到的是:
http://share.vrs.sohu.com/my/v.s ...
哦,明白了,原来是因为Discuz对用Flash播放器播放的视频地址有要求,你加了.swf后就满足了要求。
回复 夙興夜寐罔徒勞 2016-5-13 06:51 PM
天香公主: 欢迎加入我们的讨论。这两天我在看各种国内视频的地址,有点好奇你的没有/v.swf的地址是怎么得到的?因为我在搜弧视频网页上得到的Flash代码里已经带了/v.swf ...
(⊙o⊙)…我是自己上传的视频网页:
http://my.tv.sohu.com/us/294324758/83815891.shtml
底下点 分享获取flash地址得到的是:
http://share.vrs.sohu.com/my/v.swf&topBar=1&id=83815891&autoplay=false&xuid=b9fc9cf9ca64470x&from=page
然后只留下:
http://share.vrs.sohu.com/my/v.swf&topBar=1&id=83815891&autoplay=false
这个后面再加/v.swf,然后插入到discuz里的flash编辑器,就可以嵌入了
[flash]http://share.vrs.sohu.com/my/v.swf&topBar=1&id=83815891&autoplay=false/v.swf[/flash]
回复 天香公主 2016-5-13 09:26 AM
夙興夜寐罔徒勞: 今天倒腾了下搜狐视频的flash嵌入。。。和普通的不同,得在分享地址后面再加 /v.swf 才行
欢迎加入我们的讨论。这两天我在看各种国内视频的地址,有点好奇你的没有/v.swf的地址是怎么得到的?因为我在搜弧视频网页上得到的Flash代码里已经带了/v.swf
回复 carry0987 2016-5-12 09:48 AM
天香公主: 见 http://www.bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&id=1122
用网络图片插入功能加入的是 <img src=&quot;imgurl&quot;。。。,我的意思 ...
喔喔,懂了,我去試試
回复 天香公主 2016-5-12 06:16 AM
carry0987: 一建貼?跟x3.2的帖子中網路圖片插入的功能有什麼差異?
http://www.bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&id=1122
用网络图片插入功能加入的是 <img src="imgurl"。。。,我的意思直接加 imgurl 就行了。可以在显示时自动将后者转成前者。这个转换用到了你前几天说起过的正则表达式
回复 carry0987 2016-5-12 04:09 AM
天香公主: 哦,不能这么加,因为我只改了原来的FLV播放,再加了MP4。

你要在你那篇博文里加YouTube的话,可以在编辑源码状态下加类似于下面的代码:
<video id=&quot;you ...
一建貼?跟x3.2的帖子中網路圖片插入的功能有什麼差異?
回复 夙興夜寐罔徒勞 2016-5-12 02:51 AM
今天倒腾了下搜狐视频的flash嵌入。。。和普通的不同,得在分享地址后面再加 /v.swf 才行
回复 天香公主 2016-5-11 12:24 AM
东风: 似乎youtube我还不会添加, 用编辑器里按钮---flash----只显示地址。
哦,不能这么加,因为我只改了原来的FLV播放,再加了MP4。

你要在你那篇博文里加YouTube的话,可以在编辑源码状态下加类似于下面的代码:
<video id="youtube" height="140" width="240">
    <source src="http://www.youtube.com/watch?v=nOEw9iiopwI" type="video/youtube">
</video>      
<script>jqm('#youtube').mediaelementplayer();</script>

过几天我把一键贴的代码给你,这样网友就没用工具栏加YouTube的必要了
回复 东风 2016-5-11 12:08 AM
天香公主: 为什么不能改呢?你用的风格模版自带了header_common.htm文件了吗?如果带了,把我加在header_common.htm那几句加在你的 template/<yourstyle>/common/header_co ...
似乎youtube我还不会添加, 用编辑器里按钮---flash----只显示地址。
回复 东风 2016-5-11 12:04 AM
天香公主: 为什么不能改呢?你用的风格模版自带了header_common.htm文件了吗?如果带了,把我加在header_common.htm那几句加在你的 template/<yourstyle>/common/header_co ...
明白了, 我去看看。
回复 天香公主 2016-5-10 11:54 PM
东风: 我不能在header_common.htm 改----因为用的第三方摸板----第三方template/common/header.php里添加上面代码。
为什么不能改呢?你用的风格模版自带了header_common.htm文件了吗?如果带了,把我加在header_common.htm那几句加在你的 template/<yourstyle>/common/header_common.htm里就行了;如果没带,那改在template/default/common/header_common.htm里。

改在header.htm里怕不行,因为个人空间里的那些网页没有用这文件
回复 天香公主 2016-5-10 11:46 PM
东风: 现在看到修改的了--http://www.beimeilife.com/blog-4-11272.html。我去添加youtube看看。
嗯,我也看到了 ,如果你把mejs播的YouTube和YouTube自给的播放器比较一下就知道mejs追求统一风格的播放界面,不管底下的播放功能是怎么实现的。比如它播flv还是用的flash,但界面是它自己的swf提供的,而不是浏览器的flash addon提供的,所以它播flv的界面和播mp4的界面非常相似。
回复 东风 2016-5-10 11:40 PM
天香公主: header_common.htm:

<script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js&quot;></scrip ...
我不能在header_common.htm 改----因为用的第三方摸板----第三方template/common/header.php里添加上面代码。
回复 天香公主 2016-5-10 11:38 PM
东风: 我登陆北美生活网--将开发环境改为static/js/了。
这没必要改吧,改了也没错,不改的话改header_common.htm里的内容也行。
我都后悔把这三个文件夹放在static/js里了,完全没必要,只不过不知按Discuz的惯例该放在哪
回复 东风 2016-5-10 11:34 PM
天香公主: header_common.htm:

<script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js&quot;></scrip ...
现在看到修改的了--http://www.beimeilife.com/blog-4-11272.html。我去添加youtube看看。
回复 东风 2016-5-10 11:33 PM
天香公主: <script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js&quot;></script>
<script type=&quo ...
我登陆北美生活网--将开发环境改为static/js/了。
123下一页

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2017-11-25 03:50 AM , Processed in 0.067280 second(s), 21 queries.

返回顶部