概述
运用 danmu.js 可以方便地使用弹幕功能,满足任意 Web DOM 元素使用(包括 video)。弹幕实现了顶部居中、底部居中、彩色弹幕、无遮挡滚动(具体算法参考前端算法之弹幕设计),以及其它常用的弹幕使用方式。
起步
-
安装
$ npm install danmu.js
-
使用
-
Step 1:
<div id="vs"></div>
<video id="mse" controls>
<source src="demo.mp4" type="video/mp4" />
</video>
-
Step 2:
import DanmuJs from 'danmu.js'
let danmujs = new DanmuJs({
container: document.getElementById('vs'),
containerStyle: {
zIndex: 100
},
player: document.getElementsByTagName('video')[0],
comments: [
{
duration: 20000,
id: '1',
start: 2000,
prior: true,
color: true,
txt: '长弹幕长弹幕长弹幕长弹幕长弹幕',
style: {
color: '#ff9500',
fontSize: '20px',
padding: '2px 11px'
},
mode: 'top',
like: {
el: likeDOM,
style: {
paddingLeft: '10px',
color: '#ff0000'
}
}
}
],
area: {
start: 0,
end: 1,
lines: undefined
},
channelSize: 40,
mouseControl: true,
mouseControlPause: false,
defaultOff: true
})
这是 danmu.js 的 npm 使用方法,cdn 使用可以参考示例。DEMO
Properties
danmu.status
danmu.state : {
status: danmu.status,
comments: Array<CommentData>,
bullets: Array<Bullet>
}
API
player.danmu.start()
player.danmu.pause()
player.danmu.play()
player.danmu.stop()
player.danmu.sendComment({
duration: 15000,
id: 'id',
start: 3000,
txt: '弹幕内容',
style: {
color: '#ff9500',
fontSize: '20px',
border: 'solid 1px #ff9500',
borderRadius: '50px',
padding: '5px 11px',
backgroundColor: 'rgba(255, 255, 255, 0.1)'
}
})
player.danmu.setCommentDuration(id, duration)
player.danmu.setAllDuration(mode, duration)
player.danmu.setCommentID(oldID, newID)
player.danmu.hide(mode)
player.danmu.show(mode)
player.danmu.setArea(area)
player.danmu.setOpacity(opacity)
player.danmu.setFontSize(size, channelSize)
danmu.setCommentLike(id, {
el: likeDOM,
style: {
paddingLeft: '10px',
color: '#ff0000'
}
})
player.danmu.willChange()
player.danmu.stopWillChange()
Dev
我们为开发者提供了示例,使用方式如下:
$ git clone git@github.com:bytedance/danmu.js.git
$ cd danmu.js
$ npm install
$ npm run build
$ http-server
访问 http://localhost:8080/demo/index.html
License
MIT