mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-27 17:51:20 -08:00
update
This commit is contained in:
1 parent
3dea070ade
commit
830720790e
6 files changed
+47
-143
No files matched your search
@@ -6,10 +6,19 @@ export default function artplayerPluginAds(option) {
|
||||
template: { $player },
|
||||
icons: { volume, volumeClose, fullscreenOn, fullscreenOff },
|
||||
constructor: {
|
||||
validator,
|
||||
utils: { query, append, setStyle },
|
||||
},
|
||||
} = art;
|
||||
|
||||
option = validator(option, {
|
||||
html: '?string',
|
||||
video: '?string',
|
||||
url: '?string',
|
||||
playDuration: '?number',
|
||||
totalDuration: '?number',
|
||||
});
|
||||
|
||||
let $ads = null;
|
||||
let $timer = null;
|
||||
let $close = null;
|
||||
|
||||
+19
-131
@@ -3,162 +3,50 @@ import type Artplayer from 'artplayer';
|
||||
export = artplayerPluginAds;
|
||||
export as namespace artplayerPluginAds;
|
||||
|
||||
type Danmu = {
|
||||
/**
|
||||
* 弹幕文本
|
||||
*/
|
||||
text: string;
|
||||
|
||||
/**
|
||||
* 弹幕发送模式,0为滚动,1为静止
|
||||
*/
|
||||
mode?: 0 | 1;
|
||||
|
||||
/**
|
||||
* 弹幕颜色
|
||||
*/
|
||||
color?: string;
|
||||
|
||||
/**
|
||||
* 弹幕出现的时间,单位为秒
|
||||
*/
|
||||
time?: number;
|
||||
|
||||
/**
|
||||
* 弹幕是否有描边
|
||||
*/
|
||||
border?: boolean;
|
||||
};
|
||||
|
||||
type Option = {
|
||||
/**
|
||||
* 弹幕源,可以是弹幕数组,xml 地址或者一个返回 Promise 的函数
|
||||
* html广告,假如是视频广告则忽略该值
|
||||
*/
|
||||
danmuku: Danmu[] | string | (() => Promise<Danmu[]>) | Promise<Danmu[]>;
|
||||
html?: string;
|
||||
|
||||
/**
|
||||
* 弹幕持续时间,单位秒,范围在[1 ~ 10]
|
||||
* 视频广告的地址
|
||||
*/
|
||||
speed?: number;
|
||||
video?: string;
|
||||
|
||||
/**
|
||||
* 弹幕上下边距,支持数字和高度的百分比
|
||||
* 广告跳转网址,为空则不跳转
|
||||
*/
|
||||
margin?: [number | `${number}%`, number | `${number}%`];
|
||||
url?: string;
|
||||
|
||||
/**
|
||||
* 弹幕透明度,范围在[0 ~ 1]
|
||||
* 必须观看的时长,期间不能被跳过,单位为秒
|
||||
*/
|
||||
opacity?: number;
|
||||
playDuration?: number;
|
||||
|
||||
/**
|
||||
* 默认字体颜色
|
||||
* 广告总时长,单位为秒
|
||||
*/
|
||||
color?: string;
|
||||
|
||||
/**
|
||||
* 默认弹幕发送模式,0为滚动,1为静止
|
||||
*/
|
||||
mode?: 0 | 1;
|
||||
|
||||
/**
|
||||
* 字体大小,支持数字和高度的百分比
|
||||
*/
|
||||
fontSize?: number | `${number}%`;
|
||||
|
||||
/**
|
||||
* 弹幕过滤函数,返回 true 则可以发送
|
||||
*/
|
||||
filter?: (danmu: Danmu) => boolean;
|
||||
|
||||
/**
|
||||
* 是否防重叠
|
||||
*/
|
||||
antiOverlap?: boolean;
|
||||
|
||||
/**
|
||||
* 是否使用 web worker
|
||||
*/
|
||||
useWorker?: boolean;
|
||||
|
||||
/**
|
||||
* 是否同步到播放速度
|
||||
*/
|
||||
synchronousPlayback?: boolean;
|
||||
|
||||
/**
|
||||
* 输入框锁定时间,单位秒,范围在[1 ~ 60]
|
||||
*/
|
||||
lockTime?: number;
|
||||
|
||||
/**
|
||||
* 输入框最大可输入的字数,范围在[0 ~ 500]
|
||||
*/
|
||||
maxLength?: number;
|
||||
|
||||
/**
|
||||
* 输入框最小宽度,范围在[0 ~ 500],填 0 则为无限制
|
||||
*/
|
||||
minWidth?: number;
|
||||
|
||||
/**
|
||||
* 输入框最大宽度,范围在[0 ~ Infinity],填 0 则为 100% 宽度
|
||||
*/
|
||||
maxWidth?: number;
|
||||
|
||||
/**
|
||||
* 通过 mount 选项可以自定义输入框挂载的位置,默认挂载于播放器底部,仅在当宽度小于最小值时生效
|
||||
*/
|
||||
mount?: Element;
|
||||
|
||||
/**
|
||||
* 输入框自定义挂载时的主题色,默认为 dark,可以选填亮色 light
|
||||
*/
|
||||
theme?: 'dark' | 'light';
|
||||
|
||||
/**
|
||||
* 发送弹幕前的自定义校验,返回 true 则可以发送
|
||||
*/
|
||||
beforeEmit?: (danmu: Danmu) => boolean;
|
||||
totalDuration?: string;
|
||||
};
|
||||
|
||||
type danmuku = {
|
||||
name: 'artplayerPluginDanmuku';
|
||||
type Ads = {
|
||||
name: 'artplayerPluginAds';
|
||||
|
||||
/**
|
||||
* 发送一条实时弹幕
|
||||
* 跳过广告
|
||||
*/
|
||||
emit: (danmu: Danmu) => danmuku;
|
||||
skip: () => void;
|
||||
|
||||
/**
|
||||
* 重载弹幕源,或者切换新弹幕
|
||||
* 暂停广告
|
||||
*/
|
||||
load: () => Promise<danmuku>;
|
||||
pause: () => void;
|
||||
|
||||
/**
|
||||
* 实时改变弹幕配置
|
||||
* 播放广告
|
||||
*/
|
||||
config: (option: Option) => danmuku;
|
||||
|
||||
/**
|
||||
* 隐藏弹幕层
|
||||
*/
|
||||
hide: () => danmuku;
|
||||
|
||||
/**
|
||||
* 显示弹幕层
|
||||
*/
|
||||
show: () => danmuku;
|
||||
|
||||
/**
|
||||
* 是否隐藏弹幕层
|
||||
*/
|
||||
isHide: boolean;
|
||||
|
||||
/**
|
||||
* 是否弹幕层停止状态
|
||||
*/
|
||||
isStop: boolean;
|
||||
play: () => void;
|
||||
};
|
||||
|
||||
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => danmuku;
|
||||
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => Ads;
|
||||
@@ -122,33 +122,33 @@ type Option = {
|
||||
beforeEmit?: (danmu: Danmu) => boolean;
|
||||
};
|
||||
|
||||
type danmuku = {
|
||||
type Danmuku = {
|
||||
name: 'artplayerPluginDanmuku';
|
||||
|
||||
/**
|
||||
* 发送一条实时弹幕
|
||||
*/
|
||||
emit: (danmu: Danmu) => danmuku;
|
||||
emit: (danmu: Danmu) => Danmuku;
|
||||
|
||||
/**
|
||||
* 重载弹幕源,或者切换新弹幕
|
||||
*/
|
||||
load: () => Promise<danmuku>;
|
||||
load: () => Promise<Danmuku>;
|
||||
|
||||
/**
|
||||
* 实时改变弹幕配置
|
||||
*/
|
||||
config: (option: Option) => danmuku;
|
||||
config: (option: Option) => Danmuku;
|
||||
|
||||
/**
|
||||
* 隐藏弹幕层
|
||||
*/
|
||||
hide: () => danmuku;
|
||||
hide: () => Danmuku;
|
||||
|
||||
/**
|
||||
* 显示弹幕层
|
||||
*/
|
||||
show: () => danmuku;
|
||||
show: () => Danmuku;
|
||||
|
||||
/**
|
||||
* 是否隐藏弹幕层
|
||||
@@ -161,4 +161,4 @@ type danmuku = {
|
||||
isStop: boolean;
|
||||
};
|
||||
|
||||
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => danmuku;
|
||||
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => Danmuku;
|
||||
Reference in new issue
Block a user