jessibuca-plugin.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * Jessibuca视频播放器插件
  3. * 用于初始化Jessibuca所需的脚本和依赖
  4. */
  5. // 加载Jessibuca脚本
  6. export const loadJessibucaScript = () => {
  7. return new Promise((resolve, reject) => {
  8. if (typeof window === 'undefined') {
  9. return reject(new Error('非浏览器环境,无法加载Jessibuca'))
  10. }
  11. // 检查是否已经加载
  12. if (window.Jessibuca) {
  13. return resolve(window.Jessibuca)
  14. }
  15. // 加载主脚本
  16. const script = document.createElement('script')
  17. script.src = '/static/js/jessibuca/jessibuca.js'
  18. script.async = true
  19. script.onload = () => {
  20. console.log('Jessibuca脚本加载成功')
  21. resolve(window.Jessibuca)
  22. }
  23. script.onerror = (error) => {
  24. console.error('Jessibuca脚本加载失败:', error)
  25. reject(error)
  26. }
  27. document.head.appendChild(script)
  28. })
  29. }
  30. export default {
  31. install(app) {
  32. // 全局属性
  33. app.config.globalProperties.$jessibuca = {
  34. // 加载Jessibuca脚本方法
  35. loadScript: loadJessibucaScript,
  36. // 创建播放器实例
  37. createPlayer(options) {
  38. return loadJessibucaScript()
  39. .then(() => {
  40. return new window.Jessibuca(options)
  41. })
  42. }
  43. }
  44. // 预加载脚本
  45. setTimeout(() => {
  46. loadJessibucaScript().catch(err => {
  47. console.error('预加载Jessibuca失败:', err)
  48. })
  49. }, 1000)
  50. }
  51. }