| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /**
- * Jessibuca视频播放器插件
- * 用于初始化Jessibuca所需的脚本和依赖
- */
- // 加载Jessibuca脚本
- export const loadJessibucaScript = () => {
- return new Promise((resolve, reject) => {
- if (typeof window === 'undefined') {
- return reject(new Error('非浏览器环境,无法加载Jessibuca'))
- }
-
- // 检查是否已经加载
- if (window.Jessibuca) {
- return resolve(window.Jessibuca)
- }
-
- // 加载主脚本
- const script = document.createElement('script')
- script.src = '/static/js/jessibuca/jessibuca.js'
- script.async = true
-
- script.onload = () => {
- console.log('Jessibuca脚本加载成功')
- resolve(window.Jessibuca)
- }
-
- script.onerror = (error) => {
- console.error('Jessibuca脚本加载失败:', error)
- reject(error)
- }
-
- document.head.appendChild(script)
- })
- }
- export default {
- install(app) {
- // 全局属性
- app.config.globalProperties.$jessibuca = {
- // 加载Jessibuca脚本方法
- loadScript: loadJessibucaScript,
-
- // 创建播放器实例
- createPlayer(options) {
- return loadJessibucaScript()
- .then(() => {
- return new window.Jessibuca(options)
- })
- }
- }
-
- // 预加载脚本
- setTimeout(() => {
- loadJessibucaScript().catch(err => {
- console.error('预加载Jessibuca失败:', err)
- })
- }, 1000)
- }
- }
|