js实现的万能flv网页播放器代码

关于“js实现的万能flv网页播放器代码”的攻略,可以分为以下几个步骤:

1. 准备工作

在开始编写代码之前,我们需要准备以下三个必备元素:flv.js库、video.js库、以及我们要播放的flv文件。

  • flv.js:是一个轻量级的HTTP-FLV播放器库,可以用于浏览器内嵌播放Flv视频文件,它是基于浏览器原生的Media Source Extensions API开发的。
  • video.js:是一个广泛使用的开源HTML5视频播放框架,可以适配多种浏览器和设备。
  • flv视频文件:即我们要播放的Flv视频文件。可以从视频网站等地方下载获取。

2. 引入库文件

flv.js需要我们引入两个js文件:flv.min.jsvideojs-flvjs.min.js。在头部标签中分别引入这两个文件:

<head>
  <link href="//vjs.zencdn.net/7.6.6/video-js.min.css" rel="stylesheet">
  <script src="//vjs.zencdn.net/ie8/ie8-version/videojs-ie8.min.js"></script>
  <script src="//vjs.zencdn.net/7.6.6/video.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/flv.js@^1.4.1/dist/flv.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/videojs-flvjs@^1.5.0/dist/videojs-flvjs.min.js"></script>
</head>

3. 加载flv.js

在页面加载完成之后,我们需要使用flv.js的API创建一个flvPlayer对象,指定要播放的flv影片的URL:

var flvPlayer = flvjs.createPlayer({
    type: 'flv',
    url: 'http://www.example.com/demo.flv'
});

注:替换实际的flv地址即可使用。

4. 加载video.js

我们需要使用video.js创建一个播放器,并将其渲染到页面上,这样我们就可以像使用video标签一样使用它了:

var videoPlayer = videojs('videoPlayer');
videoPlayer.src({src: 'http://www.example.com/demo.flv', type: 'video/x-flv'});

注:videoPlayer是dom元素的ID。

5. 添加flv.js插件

接下来,我们需要将flv.js作为video.js的一个插件,以使它能够正常解码和播放flv视频。我们只需要在videojs的配置文件中添加flvjs插件即可:

var videoPlayer = videojs('videoPlayer',{
  plugins: {flvjs: {type: 'flv'}}
});

示例说明

示例1:最简单的flv视频播放器

<!DOCTYPE html>
<html>
<head>
    <title>flv视频播放器</title>
    <link href="//vjs.zencdn.net/7.6.6/video-js.min.css" rel="stylesheet">
    <script src="//vjs.zencdn.net/ie8/ie8-version/videojs-ie8.min.js"></script>
    <script src="//vjs.zencdn.net/7.6.6/video.min.js"></script>
    <script src="//cdn.jsdelivr.net/npm/flv.js@^1.4.1/dist/flv.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/videojs-flvjs@^1.5.0/dist/videojs-flvjs.min.js"></script>
</head>
<body>
    <video id="videoPlayer" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264">
        <source src="http://www.example.com/demo.flv" type="video/x-flv">
    </video>

    <script type="text/javascript">
        var flvPlayer = flvjs.createPlayer({
      type: 'flv',
      url: 'http://www.example.com/demo.flv'
    });

        var videoPlayer = videojs('videoPlayer',{
          plugins: {flvjs: {type: 'flv'}}
        });

        videoPlayer.src({src: 'http://www.example.com/demo.flv', type: 'video/x-flv'});
    </script>
</body>
</html>

示例2:带弹幕和自定义控制工具栏的flv视频播放器

<!DOCTYPE html>
<html>
<head>
    <title>flv视频播放器</title>
    <link href="//vjs.zencdn.net/7.6.6/video-js.min.css" rel="stylesheet">
    <script src="//vjs.zencdn.net/ie8/ie8-version/videojs-ie8.min.js"></script>
    <script src="//vjs.zencdn.net/7.6.6/video.min.js"></script>
    <script src="//cdn.jsdelivr.net/npm/flv.js@^1.4.1/dist/flv.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/videojs-flvjs@^1.5.0/dist/videojs-flvjs.min.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
    <video id="videoPlayer" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264">
        <source src="http://www.example.com/demo.flv" type="video/x-flv">
    </video>

    <script type="text/javascript">
        var flvPlayer = flvjs.createPlayer({
      type: 'flv',
      url: 'http://www.example.com/demo.flv'
    });

        var videoPlayer = videojs('videoPlayer',{
          plugins: {flvjs: {type: 'flv'}}
        });

        videoPlayer.src({src: 'http://www.example.com/demo.flv', type: 'video/x-flv'});

        videoPlayer.on('ready', function() {
            // 自定义控制工具栏的图标和颜色
            var controlBar = videoPlayer.controlBar;
            controlBar.playToggle.el().innerHTML = '<i class="iconfont">&#xe61c;</i>';
            controlBar.currentTimeDisplay.el().style.fontSize = '14px';
            controlBar.currentTimeDisplay.el().style.color = '#333';
            controlBar.durationDisplay.el().style.fontSize = '14px';
            controlBar.durationDisplay.el().style.color = '#333';
            controlBar.timeDivider.el().innerHTML = '&nbsp;/&nbsp;';
            controlBar.progressControl.seekBar.el().style.height = '3px';
            controlBar.progressControl.seekBar.el().style.backgroundColor = '#ccc';
            controlBar.progressControl.seekBar.handle.el().innerHTML = '<i class="iconfont" style="font-size: 26px;">&#xe601;</i>';
            controlBar.volumePanel.volumeBar.el().style.height = '3px';
            controlBar.volumePanel.volumeBar.el().style.backgroundColor = '#ccc';
            controlBar.volumePanel.volumeBar.handle.el().innerHTML = '<i class="iconfont" style="font-size: 18px;">&#xe609;</i>';

            // 弹幕
            $.getJSON('https://api.xiaomark.com/tools/bilibili-barrage.php?aid=89917480', function(result) {
                var data = result.data;

                data.forEach(function(d) {
                    var div = document.createElement('div');
                    div.innerHTML = d.content;
                    div.className = "danmaku-item";
                    div.style.color = d.color;
                    div.style.transform = 'translate(100%, 0)';
                    div.style.animation = 'scrollLeft 5s linear infinite';
                    div.style.fontSize = 'smaller';
                    div.style.whiteSpace = 'nowrap';
                    div.getElementById = d.time;
                    document.querySelector('.vjs-danmu').appendChild(div);
                });
            });
        });
    </script>

    <style type="text/css">
        .iconfont {
          font-family: 'iconfont' !important;
          font-size: 16px;
          font-style: normal;
          -webkit-font-smoothing: antialiased;
          -webkit-text-stroke-width: 0.2px;
          -moz-osx-font-smoothing: grayscale;
        }

        @keyframes scrollLeft {
          from {
            transform: none;
          }
          to {
            transform: translate(-100%, 0);
          }
        }

        .danmaku-item {
          font-size: 20px;
          position: absolute;
          will-change: auto;
          transform-origin: 0 100%;
          opacity: 0.8;
          z-index: 990;
        }
    </style>

</body>
</html>

以上就是“js实现的万能flv网页播放器代码”的完整攻略,望能帮到您!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现的万能flv网页播放器代码 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 常用的9个JavaScript图表库详解

    常用的9个JavaScript图表库详解 1. Chart.js Chart.js 是一个使用 HTML5 canvas 元素创建图表的 JavaScript 库。它可以绘制多种类型的图表,例如线性图、柱状图、饼图等等。 Chart.js 具有良好的文档和易于使用的 API。它适合初学者和有经验的开发者。 以下是一个简单的例子: <canvas id=…

    JavaScript 2023年5月27日
    00
  • JavaScript For Beginners(转载)

    JavaScript For Beginners是一篇适合初学者的JavaScript教程,以下是该攻略的完整讲解。 1. 前言 该教程主要分为三个部分,包括基础、进阶和高级。对于初学者来说,可以先学习基础部分,再根据自己的需要选择进阶和高级部分。 2. 基础 该部分主要包括JavaScript的基础语法和基本概念。 2.1. JavaScript简介 该节…

    JavaScript 2023年6月10日
    00
  • JS超出精度数字问题的解决方法

    以下是关于JS超出精度数字问题的解决方法的完整攻略。 1. 问题背景 在使用JS进行数值运算时,可能会遇到精度丢失的问题,出现类似于以下的情况。 0.1 + 0.2 = 0.30000000000000004 这是因为JS采用64位双精度浮点数来存储数字,而二进制小数无法精确表示一些十进制小数,导致计算精度出现偏差。 2. 解决方法 为了解决这个问题,我们可…

    JavaScript 2023年5月28日
    00
  • JQuery记住用户名密码实现下次自动登录功能

    JQuery记住用户名密码实现下次自动登录功能 在一些需要登录的网站中,用户可能需要输入用户名和密码登录。如果用户勾选了“记住我”的功能,下次再登录时就可以实现自动登录的功能。本文将介绍如何使用 JQuery 实现这一功能。 1. 使用cookie记录用户名密码 要实现自动登录的功能,需要记录用户的用户名和密码。可以使用 cookie 来保存这些信息。 //…

    JavaScript 2023年6月11日
    00
  • bootstrap 表单验证使用方法

    为了详细讲解 Bootstrap 表单验证的使用方法,我们需要从以下几个方面来介绍: 引入 Bootstrap 表单验证相关的文件 理解 Bootstrap 表单验证的基本结构 使用 Bootstrap 表单验证的相关属性和方法 示例说明 1.引入 Bootstrap 表单验证相关的文件 首先,我们需要引入 Bootstrap 框架及其相关依赖文件,包括jQ…

    JavaScript 2023年6月10日
    00
  • js实现动态添加上传文件页面

    实现动态添加上传文件页面,可以通过以下几个步骤完成: HTML部分 首先,在HTML文件中,提供一个用于点击后触发上传文件对话框的按钮,并准备一个div容器,用于动态添加上传文件表单: <button id="addFileBtn">添加上传文件</button> <div id="fileForm…

    JavaScript 2023年5月27日
    00
  • 正则表达式字面量在ECMAScript5中的变化

    正则表达式在ECMAScript5中经历了一些变化,包括正则表达式字面量的改变。下面就来一一讲解这些变化。 1. y标志符 在ECMAScript5中,正则表达式字面量新增了一个y标志符,表示执行“粘性”匹配。它指定了从目标字符串的当前位置开始匹配,并且只查找从该位置开始的匹配项。这和全局匹配(g标志符)不同,全局匹配会查找整个字符串中的所有匹配,而不仅仅是…

    JavaScript 2023年6月10日
    00
  • javascript 定时器工作原理分析

    JavaScript 定时器工作原理分析 一、概述 JavaScript 定时器是指可以在代码执行期间设定一个定时任务,在经过一段时间后执行任务的功能。常见的定时器包括 setTimeout 和 setInterval。通过定时器,我们可以实现一些周期性的或者延迟执行的逻辑。 二、setTimeout setTimeout 是 JavaScript 中最常用…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部