# oplayer-plugin-danmaku [![npm](https://img.shields.io/npm/v/@oplayer/danmaku?style=flat-square&color=ffa500&label=@oplayer/danmaku)](https://www.npmjs.com/package/@oplayer/danmaku) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@oplayer/ui?style=flat-square&label=danmaku) [![npm dm](https://img.shields.io/npm/dm/@oplayer/danmaku?style=flat-square)](https://www.npmjs.com/package/@oplayer/danmaku) [![jsdelivr](https://data.jsdelivr.com/v1/package/npm/@oplayer/danmaku/badge)](https://www.jsdelivr.com/package/npm/@oplayer/danmaku) ![](https://github.com/shiyiya/oplayer/raw/main/packages/danmaku/danmaku.png) ## Install ```bash npm i @oplayer/core @oplayer/danmaku ``` ```html
``` ## Usage ```ts export type Options = { source: string | Function | Comment[] /** * @default: 144 * */ speed?: number opacity?: number fontSize?: number /** * @default: 'dom' */ engine: 'canvas' | 'dom' /** * @default true */ enable?: boolean /** * @default false * 是否显示发送弹幕的输入框,仅 PC 生效 */ displaySender?: boolean /** * 使用发送输入框发送弹幕时出发,返回 false 进行拦截 */ onEmit?: (comment: Comment) => boolean | void } export interface Comment { text?: string /** * @default rtl */ mode?: 'ltr' | 'rtl' | 'top' | 'bottom' /** * Specified in seconds. Not required in live mode. * @default media?.currentTime */ time?: number style?: Partial