EasyPlayer.js直播与回放功能视频开发实战过程记录

简介: EasyPlayer.js直播与回放功能视频开发实战过程记录

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)视频直播与视频点播等多种协议,支持H.264、H.265、AAC等多种音视频编码格式,支持mse、wasm等多种解码方式,支持Windows、Linux、Android、iOS全平台终端的H5播放器。

  1. 引入
    copy EasyWasmPlayer.js 到项目中;
    <script src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/md5.js"></script>
    <script src="EasyWasmPlayer.js"></script>


copy libDecoder.wasm到项目或者www的根目录(一定要根目录)

  1. 在 html 中引用 EasyWasmPlayer.js
<div style="width:600px;height: 400px; background-color:pink;margin: auto;">
    <div id="newplay"></div>
</div>


  1. 直播与回放
 //API地址;
    var apiUrl = 'http://139.***.***.***:10000/';
    //鉴权参数;
    var data = {
        username: 'admin***',
        password: md5('admin'),
    }
    //获取Token;
    $.getJSON(apiUrl + "api/v1/login", data, function (data, status) {
        if (status == "success") {
            //console.log(data.Token);
            //直播流调用;
            $("#stream").click(function () {
                getStream(data.Token);
            });
            //直播流调用;
            $("#playback").click(function () {
                getPlayBack("2020-12-29T00:00:00", "2020-12-29T11:00:00", data.Token);
            })
        } else {
            console.log("鉴权参数传递错误,无法获取数据!");
        }
    })
    //直播视频流;
    function getStream(token) {
        var channelData = {
            serial: '34020000001320000005',
            code: '34020000001320000001',
            token: token
        };
        //视频回调函数;
        var callbackfun = function (e) {
            //console.log(e);
        }
        // 实例播放器
        var player = new WasmPlayer(null, 'newplay', callbackfun, {
            Height: true
        })
        //构建直播流;
        var url1 = apiUrl + "api/v1/stream/start";
        $.getJSON(url1, channelData, function (data) {
            //console.log(data);
            player.play(data.HLS, 1);
        })
    }
    //回放功能;
    function getPlayBack(starttime, endtime, token) {
        var channelData = {
            serial: '34020000001320000005',
            code: '34020000001320000001',
            starttime: starttime,
            endtime: endtime,
            token: token
        };
        //视频回调函数;
        var callbackfun = function (e) {
            //console.log(e);
        }
        // 实例播放器
        var player = new WasmPlayer(null, 'newplay', callbackfun, {
            Height: true
        })
        //录像回放;
        var url1 = apiUrl + "api/v1/playback/start";
        $.getJSON(url1, channelData, function (data) {
            //console.log(data);
            player.play(data.HLS, 1);
        })
    }

Done!


相关文章
|
6月前
|
人工智能 自然语言处理 JavaScript
通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
通义灵码基于自然语言需求,快速生成完整Vue组件。例如,用Vue 2和JavaScript实现贪吃蛇游戏:包含键盘控制、得分系统、游戏结束判定与Canvas动态渲染。AI生成的代码符合规范,支持响应式数据与事件监听,还能进阶优化(如增加启停按钮、速度随分数提升)。传统需1小时的工作量,使用通义灵码仅10分钟完成,大幅提升开发效率。操作简单:安装插件、输入需求、运行项目即可实现功能。
341 4
 通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
|
2月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
4月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
128 1
|
8月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
411 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
8月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
597 11
|
8月前
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
10月前
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
187 10
|
监控 安全 中间件
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
这篇文章介绍了什么是Next.js中的中间件以及其应用场景。中间件可以用于处理每个传入请求,比如实现日志记录、身份验证、重定向、CORS配置等功能。文章还提供了一个身份验证中间件的示例代码,以及如何使用限流中间件来限制同一IP地址的请求次数。中间件相当于一个构建模块,能够简化HTTP请求的预处理和后处理,提高代码的可维护性,有助于创建快速、安全和用户友好的Web体验。
241 0
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用