To use DPlayer for live streams with danmaku, set live: true and provide an apiBackend object to handle WebSocket communication.
Initialization
const dp = new DPlayer({
container: document.getElementById('dplayer'),
live: true,
danmaku: true,
apiBackend: {
read: function (options) {
// Logic to receive danmaku via WebSocket
// Call options.success(danmakuArray) when data arrives
options.success([]);
},
send: function (options) {
// Logic to send danmaku via WebSocket
options.success();
},
},
video: {
url: 'demo.m3u8',
type: 'hls',
},
});
Manually drawing danmaku
You can manually trigger a danmaku to appear on the screen using dp.danmaku.draw():
const danmaku = {
text: 'Get a danmaku via WebSocket',
color: '#fff',
type: 'right',
};
dp.danmaku.draw(danmaku);
const dp = new DPlayer({
container: document.getElementById('dplayer'),
live: true,
danmaku: true,
apiBackend: {
read: function (options) {
console.log('Pretend to connect WebSocket');
options.success([]);
},
send: function (options) {
console.log('Pretend to send danmaku via WebSocket', options.data);
options.success();
},
},
video: {
url: 'demo.m3u8',
type: 'hls',
},
});