密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5599|回复: 0

[开发] 如何在手机版添加视频支持

[复制链接]
  • TA的每日心情
    萌哒
    2017-2-20 02:57
  • 43

    主题

    55

    帖子

    890

    铜板

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1027
    发表于 2017-7-27 14:57:57 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    首先找到discuz的ubb代码解析文件(source/function/function_discuzcode.php),在大约199行的时候可以看到,如果用户打开的是手机版,那么[media]、[audio]、[flash]这3个标签都会被放弃解析,统一输出成[media]XXXXX[/media]这种格式。

    首先改动[media]标签的解析,将第200行的代码:
    • $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message);

    修改为:
    • $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "<p class=\"hm\" onclick=\"openVideo(this,'\\2')\"><img src=\"static/image/common/vd.gif\" /></p>", $message);

    在来改动[flash]标签的解析,将205行的代码:
    • $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message);

    修改为:
    • $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "<p class=\"hm\" onclick=\"openVideo(this,'\\4')\"><img src=\"static/image/common/vd.gif\" /></p>", $message);

    然后修改模版文件(template/default/touch/forum/viewthread.htm),在任意一个JS标签中加入解析视频的代码:
    • function openVideo(a,b) {
    •         $(a).html('<img src="static/image/mobile/images/icon_load.gif" />');
    •         var w = $(a).width();
    •         var h = w * 0.85;
    •         if(/youku/.test(b)){ //解析优酷
    •                 b = b.match(/id_(.*?)\.html|sid\/(.*?)\/v/);
    •                 b = 'http://player.youku.com/embed/' + (b[1] ? b[1] : b[2]);
    •         }else if(/bilibili|acg\.tv/.test(b)){ //解析B站
    •                 b = b.match(/o\/av(.*?)\/|aid=(.*?)&/);
    •                 b = 'http://www.bilibili.com/video/av' + (b[1] ? b[1] : b[2]);
    •         }else{
    •                 $(a).html('不支持此视频地址显示:' + b);
    •                 return;
    •         }
    •         $(a).append('<iframe width=0 height=0 src="' + b + '" scrolling=no frameborder=0 allowfullscreen></iframe>');
    •         $(a).children('iframe').load(function(){
    •                 $(a).children('img').remove();
    •                 $(a).children('iframe').css({'width':w,'height':h});
    •         })
    • }

    以上完成修改,可以用手机打开一个有视频的帖子看看效果了

    密城通,致力于为国内广大中小站长提供本地化生活服务平台运营方案。
    回复

    使用道具 举报

    快速回复: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    首页|Archiver|手机版|小黑屋|密通学院:专业网络营销服务商

    GMT+8, 2022-8-16 14:28 , Processed in 0.337890 second(s), 26 queries QQ

    Powered by XMT Inc. © 2015-2023 ArrayV1.0 豫ICP备17022382号

    系统运营:密城通 豫公网安备 41018302000212 号

    快速回复 返回顶部 返回列表