首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

仿bilibili视频弹幕播放器介绍&搭建

播放器简介 一款防bilibili的播放器,支持弹幕和后台管理,主要是这个播放器是仿B站的,很简洁,特别合适用来web开发。...功能特色 插件功能:弹幕后台、前置广告、暂停广告、会员去广告,记忆回放,自动下一集 插件支持:.m3u8、.mp4、.flv 等常见视频格式,注意:不支持 (MP4) H265 格式的视频 插件兼容:电脑...、手机端 可以用来作为一款友好的视频播放器,用于web视频播放 运行环境 nginx或apache PHP7.X Mysql ≥ 5.5 播放器界面展示 后台登录 后台相关设置管理...播放器界面 web页面中使用效果 安装步骤 解压到网站根目录 登录 你的域名/dmku 进行配置数据库 修改播放器后台账号密码 dmku/config.inc.php...>',//B站av号,用于调用弹幕 "url":"",//视频链接 "id":"<?php echo($_GET['url']);?

2K10

SurfaceView播放视频发送弹幕并实现滚动歌词

本文实例为大家分享了SurfaceView播放视频发送弹幕,并实现滚动歌词,供大家参考,具体内容如下 SurfaceView使用步骤 使用SurfaceView的步骤: 首先要继承SurfaceView...holder, int format, int width, int height)改变时 surfaceDestroyed(SurfaceHolder holder)销毁时 SurfaceView播放视频并可以发送弹幕...需要准备两个SurfaceView,一个是负责播放视频,一个负责展示弹幕。...弹幕是展示在视频上面的,所以我们要给展示弹幕的SurfaceView设置两个方法: surfaceView_danmu.setZOrderOnTop(true); ——置于上方 surfaceView_danmuHolder.setFormat...MediaPlayer.OnSeekCompleteListener() { @Override public void onSeekComplete(MediaPlayer mp) { Toast.makeText(MainActivity.this, "播放完毕

44810

dplayer使用_dplayer官方下载

DPlayer 是一个支持弹幕的 html5 视频播放器。支持 Bilibili 视频和 danmaku,实时视频(HTTP Live Streaming,M3U8格式)以及 FLV 格式。...b7daff loop: true, // 可选,循环播放音乐,默认:true lang: 'zh', // 可选,语言,`zh'用于中文,`en'用于英语,默认:Navigator language...,忽略此选项以隐藏弹幕 id: '9E2E3368B56CDBB4', // 必需,弹幕 id,注意:它必须是唯一的,不能在你的新播放器 中使用这些: `https://api.prprpr.me/dplayer...aid=4157142'] // 可选的,额外的弹幕,参见:`Bilibili弹幕支持` } }); 事件绑定 dp.on(event, handler)事件: play: DPlayer 开始播放时触发...pause: DPlayer 暂停时触发 canplay: 在有足够的数据可以播放时触发 playing: DPlayer 播放时定期触发 ended: DPlayer 结束时触发 error: 发生错误时触发

2.4K30

js事件循环

首先,我们来解释下事件循环是个什么东西: 就我们所知,浏览器的js是单线程的,也就是说,在同一时刻,最多也只有一个代码段在执行,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?...我们先来看一张图(这张图来自于http://www.zcfy.cc/article/node-js-at-scale-understanding-the-node-js-event-loop-risingstack...从上图我们可以看出,js主线程它是有一个执行栈的,所有的js代码都会在执行栈里运行。...原因:因为一开始js主线程中跑的任务就是macrotask任务,而根据事件循环的流程,一次事件循环只会执行一个macrotask任务,因此,执行完主线程的代码后,它就去从microtask队列里取队首任务来执行..., 以及借鉴了其他优秀文章 参考: http://www.zcfy.cc/article/node-js-at-scale-understanding-the-node-js-event-loop-risingstack

18.7K41

JS 循环链表

循环链表的概念循环链表是一种链表的变体,其中链表中的最后一个节点指向链表的头节点,形成一个循环或环状结构。与普通链表不同,循环链表没有明确的结束点。...循环链表具有以下几个特点:循环性:循环链表是通过将最后一个节点指向头节点来形成循环的闭合结构。这意味着链表中没有明确的结束点,可以从任何节点开始遍历整个链表,直到回到原始出发节点。...灵活性:由于循环链表是循环的,因此可以在任意位置插入或删除节点,而无需修改其他节点的指针。这使得循环链表在某些场景下更加灵活和高效,例如实现循环列表、轮播图等。...场景应用:循环链表常用于需要循环遍历的场景。例如,在游戏开发中,可以使用循环链表来实现循环列表,遍历玩家角色队列;在轮播图或循环播放的场景中,可以使用循环链表来管理展示内容的顺序。...实现一个循环列表在 JavaScript 中,循环链表是一种特殊的链表结构,其中最后一个节点指向头节点,形成一个循环。这种数据结构可以用于处理需要连续循环遍历的场景。

11510

JS 事件循环

: 主线程:也就是 js 引擎执行的线程,这个线程只有一个,页面渲染、函数处理都在这个主线程上执行。...工作线程:也称幕后线程,这个线程可能存在于浏览器或js引擎内,与主线程是分开的,处理文件读取、网络请求等异步事件。...上述过程的不断重复就是我们说的 Event Loop (事件循环)。...在事件循环中,每进行一次循环操作称为tick,通过阅读规范可知,每一次 tick 的任务处理模型是比较复杂的,其关键的步骤可以总结如下: 在此次 tick 中选择最先进入队列的任务( oldest task...、process.nextTick(Node.js 环境) setTimeout/Promise 等API便是任务源,而进入任务队列的是由他们指定的具体执行任务。

15.4K10

借用 potplayer 播放器,在本地播放 b 站视频也能看弹幕

这里的方法找回了视频,但曾经的弹幕没有了,为了以防万一可以提前下载视频和弹幕,在本地用potplayer播放器(公众号内回复 播放器 获取软件)播放b站视频就可以看弹幕了,获得和b站一样的观看体验。...potplayer 播放器 之前我一直用的QQ影音播放器,自从发现了potplayer,体验简直惊艳, potplayer内置支持多种解码器,无需额外安装就能播放几乎所有视频格式文件。...再一个就是可以播放视频的时候看弹幕,只需要弹幕文件名和视频文件名相同即可。 下面开始体验下在本地用potplayer播放播放弹幕的b站视频。...之后根据cid获取弹幕文件,弹幕文件采用 xml 格式存储,接口地址 https://api.bilibili.com/x/v1/dm/list.so?...视频和弹幕文件下载后放同一个目录下,即【周杰伦纪录片】第七集:夏日狂想.flv和 【周杰伦纪录片】第七集:夏日狂想.ass,播放视频的时候字幕也出来了。 ?

5.2K20

多功能流媒体播放器实现网页无插件直播之EasyPlayer.js如何实现播放完自动循环播放

EasyPlayer.js如何实现播放完自动循环播放? 分析问题: H5中video标签支持自动循环播放。...Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。...Video.js实例化video时添加属性。 解决问题: 在video.js实例化video标签时添加loop此属性就可以实现播放完自动循环播放。...随着多年不断的发展和迭代,不断基于成功的实践经验,发展出包括有: EasyPlayer RTSP、EasyPlayer RTMP、EasyPlayerPro 和EasyPlayer.js播放器。...目前支持Windows、 Android、iOS三个平台,同时EasyPlayer.js还支持Linux平台。

4.3K10

《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!

,并且右键-查看页面源码,搜索不到弹幕的文字,说明数据是异步加载的 2.抓包分析 打开刚刚关闭的javaScript,重新加载页面,F12打开开发者工具,仔细查找XHR或JS最终在js中找到了弹幕数据,...首先通过time英文的本身来看,她是一个和时间有关系的变量,那么可以有以下猜测 time是本波弹幕开始加载的时间; time是本波弹幕播放的总时长 然后观察4条相邻的弹幕js数据,当前弹幕的next的值和下一条弹幕...为了验证猜想,我们把视频进度条拉到最后,本期的视频长度为104.01分钟,而最后一条弹幕的next为6240000,6240000ms转化为分钟刚好是104min,验证成立:time是每条弹幕开始播放的时间...传入的参数time_zimu是每条弹幕开始播放的时间 def main(time_zimu): url='https://galaxy.bz.mgtv.com/rdbarrage?...,传入json的数据orgin_data,通过循环重复取出单条弹幕信息,并提取对应的字段 def get_infos(orgin_data): for infos in orgin_data:

66720

弹、弹幕,是怎样练成的?

模拟数据 // index.js文件let data = [ {value: '周杰伦的听妈妈的话,让我反复循环循环', time: 5, color: 'red', speed: 1, fontSize...时表示为播放状态 递归调用render 通过requestAnimationFrame来递归调用render 要比setInterval这样的方式好很多 渲染整个弹幕render方法就完成了,那么要继续写了...renderBarrage才是主角 // index.js文件class CanvasBarrage { ...省略 renderBarrage() { // 首先拿到当前视频播放的时间...写到这里我们已经完成了视频网站上的弹幕功能了,可喜可贺。 下面我们再来完善一下视频播放时对弹幕播放处理吧。...暂停和拖动 暂停就停止渲染弹幕 // index.js文件...省略// 播放video.addEventListener('play', () => { canvasBarrage.isPaused

82920
领券