jQuery弹幕插件

所属分类:媒体,其他-音频和视频,动画效果

 212515  447  查看评论 (39)
分享到微信朋友圈
X
jQuery弹幕插件 ie兼容11

更新时间:2019-09-18 08:53:30

更新说明:修改作者地址失效问题。


简介

本插件实现弹幕功能,就如某些视频网站上的弹幕功能一样,只不过国内大多数视频网站是用flash实现的,而本插件通过jQuery。 就如绝大多数视频网站的弹幕功能,私也实现了彩色弹幕,顶端弹幕及底端弹幕,也可以即时操控弹幕透明度。当然也可以在弹幕运行的过程中暂停和继续。

用法

不用多说,第一步要引入js文件,把jquery.danmu.js和jQuery一起引用。

<script src="danmu/jquery-1.11.1.min.js"></script> 
<script  src="danmu/jquery.danmu.js"></script>

插件中定义了弹幕对象,意指具体某一条弹幕及起信息,对象名字叫”danmu”,该对象有如下属性:

text――弹幕文本内容。 

color――弹幕颜色。 position――弹幕位置 “0”为滚动 “1” 为顶部 “2”为底部 

size――弹幕文字大小。 “0”为小字 ”1”为大字

time――弹幕所出现的时间。 单位为”分秒“(及1/10秒,100毫秒)

isnew――当出现该属性时(属性值科委任意),会认为这是用户新发的弹幕,从而弹幕在显示的时候会有边框。 例如:

 var a_danmu={ "text":"2333333" , "color":"green" ,"size":"1","position":"0","time":60};

要显示边框的新弹幕:

 var a_danmu={ "text":"2333333" , "color":"green" ,"size":"1","position":"0","time":60 ,"isnew":" "};

另外,为提高效率,插件另外定义了一种名为danmuss的对象,意指所有弹幕的集合,这个对象在每个弹幕屏中是唯一的。插件在运行时会把每个danmu对象写入danmuss对象,然后在相应的时间把某条弹幕放映于屏幕。dammuss对象每个属性的名称为弹幕所出现的时间点(分秒),属性值为该时间点所出现的所有弹幕的danmu对象(没有time属性)所组成的数组。

例如:

var danmuss={ 1:[ { "text":"hahahaha" , "color":"red" ,"size":"0","position":"0"}, { "text":"233333" , "color":"red" ,"size":"0","position":"2"} ], 3:[ { "text":"poi" , "color":"red" ,"size":"1","position":"1"}, { "text":"2333" , "color":"#FFFFFF" ,"size":"0","position":"0"} ], 50:[ { "text":"XXX真好" , "color":"#FFFFFF" ,"size":"0","position":"2"}, ] };

要在屏幕中插入弹幕,首先需要划定一个区域,使用<div>。 

例如现在创建一个id=”danmu”的div作为弹幕将要飞过的区域 <div id="danmu"> </div> 

然后调用插件方法,传递配置属性。

("#danmu").danmu({

left: 0, //区域的左边边界位置,相对于父div 

top: 0 , //区域的上边边界位置,相对于父div 

height: 360, //区域的高度 width: 640, //区域的宽度 

zindex :100, //div的css样式zindex

speed:5000, //弹幕速度,飞过区域的毫秒数 

sumtime:900 , //弹幕运行总时间

danmuss:{}, //danmuss对象,运行时的弹幕内容 

default_font_color:"#FFFFFF", //弹幕默认字体颜色 

font_size_small:24, //小号弹幕的字体大小,注意此属性值只能是整数

font_size_big:28, //大号弹幕的字体大小 

opacity:"0.7", //弹幕默认透明度 

top_botton_danmu_time:4000 //顶端底端弹幕持续时间 } );

所有属性都不是必须指定,默认值就如上。

当不指定danmuss时,也可以在调用此方法后用

$('#danmu').danmu("add_danmu",新弹幕的danmu类型对象)

;逐一添加danmu对象。 

当然在弹幕运行的过程中,可以随时用

$('#danmu').danmu("add_danmu",新弹幕的danmu类型对象)

添加弹幕。 

做完以上准备后,可以使弹幕在该区域开始运行,调用

$('#danmu').danmu('danmu_start');

即可运行。

其他方法:

暂停弹幕:

$('#danmu').danmu('danmu_pause');

暂停后继续:

$('#danmu').danmu('danmu_resume');

停止弹幕:

$('#danmu').danmu('danmu_stop');

即时增加弹幕:

$('#danmu').danmu("add_danmu",新弹幕的danmu类型对象);

使弹幕时间同步与视频的时间,可能需要和时间相关的方法,如下。

获取弹幕运行的当前时间(单位为分秒):

$('#danmu').data("nowtime");

设置弹幕运行的当前时间(单位为分秒):

$('#danmu').data("nowtime",新时间)

更改弹幕透明度:

$(#danmu).data("opacity",新透明度数值);

是否处于暂停状态:

$('#danmu').data("paused");

如果需要像视频网站那样使用户所发弹幕得以保存,需要使用到web后端及数据库技术。

Demo

推荐的方法

通过控制好弹幕div的left、top、height、width、zindex属性,可以让弹幕正好悬浮于html视频之上,就如Demo中的那样。

在用户发弹幕时,可以在前端生成两个danmu对象,一个是有isnew属性的,即时使用add_danmu方法添加弹幕。另一个是没有isnew属性的,使用ajax技术写入数据库。

相关插件-音频和视频,动画效果

一款简单实用的视频播放插件

虽小却精悍,可自动播放,音乐,视频,支持HTML5
  音频和视频
 129306  440

video封装ui

videoui无任何依赖,代码注释很清楚。
  音频和视频
 53336  380

jQuery html5自定义视频控件

html5自定义视频控件,加入评论,载入弹幕,鼠标悬浮在进度条显示某时刻画面,视频卡端显示加载动画,清晰度切换等功能;并添加了弹幕隐藏显示设置,播放速度设置,镜像翻转设置。
  音频和视频
 72640  574

时间播放器

类似视频播放器下面的时间播放控制
  音频和视频
 45370  306

讨论这个项目(39)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    酷野阿姨 0
    2019/2/18 14:50:24
    怎么修改文字颜色和边框颜色不一样呢?》 回复
    半沉沙蔼,半沉沙海 0
    2019/1/28 11:18:54
    为什么弹幕只执行一次
        半沉沙蔼,半沉沙海0
        2019/1/28 15:34:23
        添加的时候就初始调用执行一次, 我也没暂停弹幕哈 ,, ,,很是搞笑
    回复
    纯黑灬 0
    2018/10/12 10:52:07
    我心依旧 0
    2018/6/14 19:40:59
    rtmp 怎么支持啊
        dxz20020
        2018/6/30 8:25:57
        rtmp和弹幕没关系吧...
    回复
    ↘蓅蒗的小孩 0
    2017/12/18 13:52:21
    孤独患者 0
    2017/9/7 11:03:31
    $("#send").click(function() {
        var text_obj = '{ "text":"11111","color":"red","size":"0","position":"0","time":60}';
        var new_obj = eval('(' + text_obj + ')');
        $('#danmu').danmu("add_danmu", new_obj)
    });

    好像要装json

    回复
    Nemo 0
    2016/7/23 10:07:53
    ie浏览器不支持吗??? 回复
    showsunrise 0
    2016/6/21 19:06:34
    不错的,很好用。 回复
    RandomFree 0
    2016/4/13 19:04:08
    遇到了相同的问题,请问解决了么? 回复
    -果冻-- 0
    2016/3/8 11:03:22
    您所访问的网站发生故障! 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复