今天是:

千古易学应用联盟

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2269|回复: 0

如何让discuz论坛手机版也能播放网络视频?

[复制链接]
发表于 2017-3-5 21:05:51 | 显示全部楼层 |阅读模式

discuz论坛这么多个版本,有时候部落真是想不通,居然没有一个支持手机版播放在线视频的,正常情况下,我们在手机上打开某个含有视频链接的贴子,显示的都是一行代码,当然,现在已经有插件可以解决这个问题.不过部落当时试了一个,效果也不是很理想,像播放网络视频,也就是外部视频的话,需要支持的东西有点多,最让人不舒服的是,discuz这么多的版本,居然没有一个解析外部视频链接的.

论坛如何发表连接外部视频(例如优酷网的视频)的帖子.

这里部落先简单说一下,可以使用以下两种方法

方法1:

a、后台 => 界面 => 编辑器设置 => Discuz!代码 => Flash栏 勾选 可用

b、版块 => 版块名称后编辑 => 帖子选项 => 允许使用 Discuz! 代码: 选择 是

c、用户 => 用户组 => 详情 => 帖子选项 => 设置下允许使用discuz代码

d、发帖时可以选择开启的 Flash 图标,放入优酷等视频网站的 Flash 地址。

方法2:

a、后台 => 界面 => 编辑器设置 => Discuz!代码 => media栏 勾选 可用

b、版块 => 版块名称后编辑 => 帖子选项 => 设置允许使用media代码以及允许使用 Discuz! 代码

c、发帖时可以选择开启的 media 图标,放入优酷等视频网站的 Flash 地址.

通常情况下,我们在贴子中插入一段视频,在手机上打开,显示的是下面的内容:

0 @* V5 q; x1 h+ G6 s+ q/ d
  •   $ O! T: d& _# W7 U: `
# T( B/ N+ I7 T

discuz手机播放视频

部落找到了一个六月_手机视频播放免费版,大家可以试试看,介绍地址是:由此直达.

优酷 土豆 56 酷六视频等视频资源在手机端点击既能及时观看.

当然,还有其它的,自己可以找一下.

如何让discuz论坛手机版也能播放网络视频?

这里部落列出自己收集的几个方法:

一.

如果手机安装了flash播放器,可以使用下面的方法.

首先我们打开source/function/function_discuzcode.php,然后查找:

2 l, A/ b/ s* ?8 a: n5 J5 ?9 p
  • $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message);  ) m3 U+ \' a; I$ o7 D
* F* n1 ]# `6 [( N& i" d0 B+ D1 e( i

修改为:


. ~- ^/ g. ?3 A1 l9 g, Q8 _4 Q
  • $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/", "<embed src='\\4' allowFullScreen='true' quality='high' width='260' height='150' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash'></embed>", $message);  
    8 u. C4 G9 H2 z1 b7 g; [$ P
4 x1 g  @( P7 M7 Y

保存后手机版的discuz 也能播放网络视频了.

部落的线报论坛成功操作后如下图:

[/url]

二.

另外一种方法实现,在版块里禁用discuz代码,采用html代码!然后在编辑器里用如杲方式调用,这样手机就可以访问了.

[url=http://www.mfbuluo.com/wp-content/uploads/2016/05/dzsjbfsp1.jpg]

<iframe height=280 width=260 src="http://player.youku.com/embed/XMjYwNTIxODg1Ng" frameborder=0></iframe>

论坛板块和用户权限打开html支持,发帖选项,纯文本,html(点开附加选项才可以选html),然后插入以下代码,视频id XNzEwMzEyNDk2 换成自己的,可以在优酷网视频网址里看到.

这个方法部落没有测试,自测吧.

三.

手机版支持播放外链视频的方法,可支持触屏版,也可支持标准版.

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

首先改动[media]标签的解析,将第200行的代码:这个和第一部的基本一样,只是后面加入解析代码.

3 X  V1 W6 V3 L  g
  • $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message);  
    : M, \% N! K% v7 i! l

2 _7 V3 j6 I+ Y7 y; a/ s

修改为:


2 H" D" X$ W' A6 |3 E
  • $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);  
    9 \2 v1 e$ ]- ?. j
. B7 f0 ^5 d  {& V

在来改动[flash]标签的解析,将205行的代码:


) L& o8 O! c9 v) z
  • $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message);  
    6 U4 Z1 I' L/ r0 [0 T
: A6 b) h9 z0 s6 r

修改为:


3 }% d2 I) q, I4 T
  • $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);  ' ~0 G2 B( i# L1 Z( I

7 e+ C: O4 [; t

然后修改模版文件(template/default/touch/forum/viewthread.htm),在任意一个JS标签中加入解析视频的代码:

9 B+ t. M; _. ?0 T) ~' |8 v1 K4 f
  • 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});   
  •         })   
  • }  
    - x1 L: H; Y5 f3 q

. p1 I" p; @* L1 }

可以用手机打开一个有视频的帖子看看效果了.

这里只写了优酷和B站的解析,其他视频地址的解析暂时没有写,不过有了上面的JS做参考很简单就可以写出支持其他站的视频外链。其原理就是,按照视频URL匹配出VID然后组成可以加载出HTML5播放器的URL在通过iframe框架加载页面就行了.

小结

discuz论坛手机版也能播放网络视频,如果要等官方的支持,估计还得有些时间.部落目前自己使用的就是第一种方法.

5 D4 R& W% R3 M8 p2 Z( p! Y

四.用FTP打开网站根目录下的source/function/function_discuzcode.php,

6 I8 V- L2 ^6 M  P( R' G
* e4 Y& `* e6 f$ L
' M; p* A0 k( Z! F7 F9 }& ~  然后查找以下代码:
& E# p4 G6 ^: R! U+ c1 _0 H
# V. I8 o/ x/ u% J7 U# L8 r
; l0 z6 ~6 o. C  $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message);    _7 H3 K9 Y! {# |! F9 G- f
9 l8 V; M9 K* ~6 O4 c! h+ D
  修改为:
* R1 S( l- ]3 g6 \3 D# ^# ?0 `2 u3 B* Y% |
% x" T2 y4 C1 S* u! a
  $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "<iframe height='260' width='100%' src='\\4' scrolling='no'  allowfullscreen='true' frameborder='0'></iframe>", $message); }

本帖子中包含更多资源

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

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.lhyan.net ( 豫ICP备19042031号 )

Powered by  千古易学应用联盟  © 2012-2030

GMT+8, 2023-1-30 22:27 , Processed in 0.151508 second(s), 20 queries .

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