我会为您详细介绍最常用且效果最好的方法,并附上完整的代码示例。

discuz中播放flv视频的网页代码
(图片来源网络,侵删)

核心思路

Discuz! 本身不自带视频播放功能,所以我们需要借助第三方播放器插件或者手动嵌入代码,最主流的方案是使用 JW PlayerVideo.js 这类功能强大、兼容性好的 HTML5 视频播放器。

重要提示: FLV 是一种较旧的视频格式,现代的网页播放器(如 Video.js)和浏览器更推荐使用 MP4 (H.264编码)WebM 格式,因为它们性能更好、兼容性更佳,并且对移动设备更友好,如果可能,请尽量转换视频格式。


使用 Discuz! 视频插件(最推荐、最简单)

这是最省心、最安全的方法,因为它与 Discuz! 系统集成得最好,权限管理、上传、播放等功能都由插件统一处理。

  1. 寻找插件

    discuz中播放flv视频的网页代码
    (图片来源网络,侵删)
    • 访问 Discuz! 官方应用中心 (discuz.app) 或第三方 Discuz! 插件网站。
    • 搜索关键词如“视频插件”、“视频门户”、“HTML5播放器”。
    • 选择一个评价高、更新活跃的插件,Xunlei Video (迅播) 插件”的替代品或新的“HTML5 视频播放器”插件。
  2. 安装插件

    • 下载插件压缩包。
    • 登录您的 Discuz! 后台,进入“插件” -> “插件管理” -> “上传插件”。
    • 上传并安装插件,然后启用它。
  3. 使用插件

    • 插件启用后,通常会在后台创建一个新的“视频”板块,或者允许您在发布帖子时选择插入视频。
    • 您可以直接在后台上传视频文件,或者粘贴视频的网络地址。
    • 插件会自动生成播放代码,您只需按照指引发布即可。

优点

  • 简单易用:无需手动写代码。
  • 功能完整:通常包含视频上传、管理、分类、播放、权限控制等。
  • 安全稳定:与 Discuz! 深度集成,不易产生冲突。

缺点

discuz中播放flv视频的网页代码
(图片来源网络,侵删)
  • 依赖插件:需要额外安装和配置。

手动嵌入第三方播放器代码(灵活、免费)

如果您不想安装插件,或者有特定的播放器需求,可以手动将播放器代码嵌入到帖子中。

这里我们以 Video.js 为例,它是一个免费、开源、功能强大的 HTML5 视频播放器,支持 FLV 格式(需要配合 videojs-flash 插件)。

步骤 1:准备播放器文件

  1. 下载 Video.js

    • 访问 Video.js 官网:https://videojs.com/
    • 下载最新版本,您会得到一个包含 CSS 和 JS 文件的文件夹。
  2. 上传文件到您的服务器

    • 在您的网站根目录下(static/js/ 文件夹),创建一个名为 videojs 的文件夹。
    • 将下载的 video-js.cssvideo.min.js 文件上传到这个文件夹。
    • 重要:为了播放 FLV,您还需要下载 videojs-flash 插件,同样,将其 JS 文件也上传到 videojs 文件夹。

步骤 2:修改 Discuz! 模板(全局引入)

为了让所有页面都能使用播放器,最好修改 Discuz! 的公共模板。

  1. 登录 Discuz! 后台。

  2. 进入“界面” -> “编辑模板” -> “**global.htm**” (这是全局公共模板)。

  3. <head></head> 标签之间,添加以下代码,引入 Video.js 的 CSS 和 JS 文件:

    <!-- 在 global.htm 的 <head> 标签内添加 -->
    <link href="https://您的域名/static/videojs/video-js.css" rel="stylesheet" type="text/css">
    <script src="https://您的域名/static/videojs/video.min.js"></script>
    <!-- 引入 FLV 播放支持插件 -->
    <script src="https://您的域名/static/videojs/videojs-flash.min.js"></script>

    注意:请将 https://您的域名/static/videojs/ 替换为您自己服务器上的实际路径。

步骤 3:在帖子中嵌入播放器代码

您可以在发布帖子时,使用 HTML 模式来插入播放器了。

示例代码:

<!-- 设置一个容器,并给它一个唯一的 ID -->
<video id="my-flv-player" class="video-js vjs-default-skin" controls preload="auto" width="640" height="360" data-setup="{}">
  <!-- 如果浏览器不支持 Video.js,则显示此文本 -->
  <p class="vjs-no-js">
    To view this video please enable JavaScript, and consider upgrading to a web browser that
    <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>.
  </p>
  <!-- 这里是视频源,可以是本地路径或网络URL -->
  <source src="https://您的域名/video/sample.flv" type="video/flv">
  <!-- 可以添加多个源,播放器会自动选择第一个可用的 -->
  <!-- <source src="myvideo.webm" type="video/webm"> -->
</video>
<!-- 初始化播放器的脚本 -->
<script>
  // 等待页面加载完成
  videojs('my-flv-player', {
    // 播放器配置选项
    controls: true, // 显示控制条
    preload: 'auto', // 预加载策略
    width: 640,     // 播放器宽度
    height: 360,    // 播放器高度
    // 更多配置请参考 Video.js 文档
  }, function() {
    // 这个回调函数在播放器准备好时执行
    console.log('播放器已准备就绪!');
  });
</script>

使用方法:

  1. 在 Discuz! 后台,确保已开启“允许使用 HTML 代码”的权限(通常在“帖子” -> “发帖相关设置”中)。
  2. 发布新帖子或回复时,切换到“源代码”模式(或类似的HTML编辑模式)。
  3. 将上面的代码完整复制粘贴进去。
  4. 务必修改 src 属性:将 https://您的域名/video/sample.flv 替换为您视频文件的实际地址(可以是绝对路径,也可以是网络URL)。
  5. 发布帖子。

使用 Discuz! 的附件功能(传统方法)

这个方法比较传统,播放体验可能不如现代播放器,但不需要额外插件。

  1. 上传视频为附件

    • 在发布帖子时,点击“附件”按钮,将您的 .flv 视频文件上传为帖子附件。
  2. 获取附件地址

    • 上传成功后,点击“插入附件”,将视频插入到帖子中,Discuz! 会生成类似 <a href="...">...</a> 的链接。
    • 或者,查看帖子源代码,找到视频附件的真实下载地址(类似 forum.php?mod=attachment&aid=... 的链接)。
  3. 使用 <embed><object>:

    • 在帖子源代码模式下,删除默认的附件链接。
    • 使用以下代码替换它:
    <!-- 使用 embed 标签 (较老,但兼容性好) -->
    <embed src="https://您的域名/forum.php?mod=attachment&aid=XXX&nothumb=yes" type="application/x-shockwave-flash" width="640" height="480" allowscriptaccess="always" allowfullscreen="true"></embed>
    <!-- 或者使用 object 标签 -->
    <object type="application/x-shockwave-flash" width="640" height="480" data="https://您的域名/forum.php?mod=attachment&aid=XXX&nothumb=yes">
      <param name="movie" value="https://您的域名/forum.php?mod=attachment&aid=XXX&nothumb=yes">
      <param name="allowFullScreen" value="true">
      <param name="allowScriptAccess" value="always">
      您的浏览器不支持播放此视频。
    </object>

    注意srcdata 属性的值必须是您视频附件的直接播放地址,而不是下载地址,通常需要在 URL