# PC 端扩展【专业版】
提示
PC 端扩展组件,该扩展新增了播放器在桌面端更多的功能性支持,包含弹幕输入、广告悬浮窗、视频水印、小窗口播放、进度位提示点和视频截图等。
插件使用原生 Js 的编写,因此在编写功能接口在代码上并未产生冗余从而导致体积包的增大。扩展插件通常是保持最新的版本,在使用该插件之前请更新到 mui-player 主文件到最新版本。
# 下载
增值服务
该插件由专业版提供支持,如需获取插件,请 点击这里 查看专业版插件下载。
# 开始使用
在页面引入 mui-player-desktop-plugin.js,插件需要在初始化播放器之前加载:
<!-- 使用标签引入 “专业版” 扩展组件 -->
<script type="text/javascript" src="js/mui-player-desktop-plugin.min.js"></script>
在主配置项 plugins 中传入:
var mp = new MuiPlayer({
container:'#mui-player',
src:'../media/media.mp4',
...
plugins:[
new MuiPlayerDesktopPlugin({
key: '配置您插件密文',
...
})
]
});
# 配置选项 Plus
示例创建一个弹幕输入组件:
new MuiPlayerDesktopPlugin({
key: '配置您插件密文',
danmakuComponent:{
open: true, // 是否开启弹幕组件
growSize: 0.65, // 组件占据容器的宽度比例,取值范围:0 - 1
buttonText: '发送',
onSend(text, cleanText) { // 监听文本发送内容的函数回调
// axtion
},
}
})
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
danmakuComponent | Object | {} | 创建一个弹幕输入组件 |
danmakuComponent.open | Object | true | 是否开启弹幕组件 |
danmakuComponent.growSize | Number | 0.65 | 组件占据容器的宽度比例,取值范围:0 - 1 |
danmakuComponent.position | String | left | 组件排列的位置,可取值 left | right | center |
danmakuComponent.buttonText | String | - | 按钮显示的文字 |
danmakuComponent.placeholder | String | - | 弹幕文本录入框显示的占位符 |
danmakuComponent.onSend | Function | (text,cleanText) | 监听文本发送内容的函数回调,方法接收两个回调参数: text:String - 表示文本内容 cleanText:Function - 调用函数清空文本输入框内容 |
danmakuComponent.loadIntercept | Function | (Element) | 在组件加载之前进行拦截,通常这里是做对组件重写的动作,回调函数 Element 返回该控件元素 |
danmakuComponent.style | Object | {} | 组件的附加样式 |
# | |||
prompt | Object | 进度条指示点 | |
prompt.dotColor | String | #F8F8FF | 颜色 |
prompt.hoverShow | Boolean | false | 是否只在鼠标悬停时显示 |
prompt.items | Array | {} | 进度条指示点配置项,数组中元素传入配置对象包括: time: < Number > 时间节点/单位秒content: < String | Element > 鼠标悬浮提示内容style:< Object > 自定义项样式 |
# | |||
seekLine | Object | true | 显示寻址线 |
# |
# 接口 Plus
方法名 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
PopupAdvertise | Function | 弹出广告悬浮窗: 示例 | ||
PopupAdvertise.content | HTMLElement | String | Y | 广告窗内容 | |
PopupAdvertise.style | Object | {} | 自定义附加弹出窗样式 | |
# | ||||
addWatermark | Function | 添加窗口播放水印:示例 | ||
addWatermark.image | String | Y | 嵌入水印的图片路径 | |
addWatermark.scale | Number | 1 | 水印显示的缩放比 | |
addWatermark.position | String | top-right | 水印显示的位置,可选:top-right top-left bottom-left bottom-right | |
# | ||||
createRolling | Function | 创建一个窗口轮询滚动的内容提示,参数配置:示例 | ||
createRolling.id | String | Y | 滚动播放的ID标识,如需创建多个滚动窗口该参数必须声明 | |
createRolling.scrollamount | Number | 6 | 设置每次滚动时移动的长度(以像素为单位) | |
createRolling.scrolldelay | Number | 85 | 设置每次滚动时的时间间隔(以毫秒为单位) | |
createRolling.loop | Number | -1 | 设置滚动次数,默认值为 −1,表示将连续滚动 | |
createRolling.style | Object | {} | 自定义添加内容滚动样式 | |
createRolling.onstart | Function | 监听函数,当创建开始滚动时触发一次 | ||
createRolling.onfinish | Function | 监听函数,滚动结束后触发,当 loop != -1 时有效 | ||
createRolling.stop | Function | 暂停滚动 | ||
createRolling.start | Function | 开始滚动 | ||
# | ||||
screenshot | Function | 截图功能,获取当前播放的视频帧:示例 | ||
screenshot.width | Number | videoWidth | 视频截图画布的宽度 | |
screenshot.height | Number | videoHeight | 视频画布截图的高度 | |
screenshot.quality | Number | 0.92 | 设置 jpegs 图片输出的质量,取值 0 - 1 | |
screenshot.type | String | image/png | 输出的图片格式,可选:image/png image/jpeg image/webp | |
screenshot.scale | Number | devicePixelRatio | 截图渲染的缩放比例,取值 0 - 1 | |
screenshot.watermark | { image, scale, position } | 添加截图水印,参数配置相同于 addWatermark 函数接口 | ||
screenshot.onDone | Function | { base64, currentTime, download } | 完成时回调函数 | |
screenshot.onFail | Function | (error) | 失败时回调函数 | |
# | ||||
switchMiniPlayer | Function | (open, option) | 开启/关闭 小窗口播放,函数传递open <Boolean> 表示打开或者关闭小窗播放,option <Object> 传递所有小窗可配置参数:示例 | |
switchMiniPlayer.width | Number | String | 400 | 小窗宽度 | |
switchMiniPlayer.height | Number | String | auto | 小窗高度 | |
switchMiniPlayer.bottom | Number | String | 50 | 定位窗口底部的距离 | |
switchMiniPlayer.right | Number | String | 50 | 定位窗口右边的距离 | |
switchMiniPlayer.keepPlayerLayer | Boolean | true | 保护播放器父级容器的大小 | |
switchMiniPlayer.transition | Boolean | true | 是否开启小窗动画 | |
switchMiniPlayer.transitionDuration | Number | 0.35 | 动画时间 | |
switchMiniPlayer.transitionTiming | String | ease | 动画的过渡效果 | |
# | ||||
createSettingPopup | Function | 创建并弹出一个选项设置窗口:示例 | ||
createSettingPopup.name | String | Y | 弹窗标识ID | |
createSettingPopup.configs | Array | Y | 配置项,配置规则参考: 自定义设置组配置 | |
createSettingPopup.offseDistance | Number | 0 | 指定 popup 偏移距离 | |
# |
# 弹出广告悬浮窗
// 动态创建弹出广告悬浮窗的内容
var vnode = document.createElement('img');
vnode.src = '../static/ads.jpg';
vnode.style.width = '100%';
vnode.style.height = '100%';
vnode.onclick = (e) => {
e.stopPropagation();
console.log('on click action...');
}
mp.popupAdvertise({
content: vnode,
style:{},
});
# 创建视频贴片水印:
mp.addWatermark({
image: 'https://muiplayer.oss-cn-shanghai.aliyuncs.com/static/image/logot.png',
scale: 0.5,
position:'top-right',
})
# 创建一个窗口轮询滚动的内容提示(跑马灯效果)
var rolling = new mp.createRolling(content ,{
id: 'warning',
scrollamount:6, // 设置每次滚动时移动的长度(以像素为单位)
scrolldelay:85, // 设置每次滚动时的时间间隔(以毫秒为单位)
loop:2, // 设置滚动次数,默认值为 −1,表示将连续滚动。
style:{
paddingBottom: '25px',
paddingTop: '25px',
textShadow: '0px 0px 3px rgb(0 0 0)',
}
});
rolling.onstart(function() {
console.log('Rolling Start...')
});
rolling.onfinish(function() {
console.log('Rolling Finish...')
});
// rolling.stop(); // 暂停滚动
// rolling.start(); // 开始滚动
# 获取当前播放时间的视频帧
/**
* 获取当前播放时间的视频截图
* 注意: 一些 HTML元素设定了对 CORS 的支持,例如:<img>、<audio>、<video> 标签等,这意味着调用 screenshot 截图方法可能会产生跨域从行为不被支持!在同源安全策略才可能被支持,同时设置元素的 crossOrigin 属性
* 参考:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Attributes/crossorigin
*/
mp.screenshot({
quality: 0.92,
type: 'image/jpeg',
scale:0.5,
watermark: { // 添加截图水印
image: 'https://muiplayer.oss-cn-shanghai.aliyuncs.com/static/image/logot.png',
scale: 0.75,
position:'top-right',
},
onDone:function(data) {
let { base64, currentTime, download } = data;
download('File Name');
},
onFail:function() {
console.error('screenshot error...');
}
});
# 小窗口播放
// 开启小窗
mp.switchMiniPlayer(true, {
width: 400,
height: 'auto',
bottom: 50,
right: 50,
keepPlayerLayer: true,
transition: true,
transitionDuration: 0.35,
transitionTiming: 'ease',
});
// 关闭小窗
mp.switchMiniPlayer(false);
# 创建并弹出一个选项设置窗口
var danmakuConfigs = [
{
functions:'弹幕',
model:'switch',
selected:true,
onToggle:(data, selected, back) => { ... },
},
{
functions:'字体大小',
childConfig:[
{ functions:'12 PX' },
{ functions:'16 PX' },
{ functions:'18 PX' },
{ functions:'25 PX',selected:true },
{ functions:'36 PX' },
{ functions:'45 PX' },
{ functions:'64 PX' },
],
onToggle:(data, selected, back) => { ... }
}
];
mp.createSettingPopup(event, {
name: 'danmakuConfigs', // 指定的名称,必填
configs: danmakuConfigs, // 配置项目
offseDistance: 47, // 指定 popup 偏移距离
});
← PC 端扩展 移动端扩展【专业版】 →