import Player, { Events } from 'xgplayer'
import type { IPlayerOptions } from 'xgplayer'
import { globalStore } from '@/stores'

interface Audio_Config extends IPlayerOptions {
  autoplay?: boolean
  recordType?: string // 日志上报
  onPlay?: (...args: any[]) => void
  onEnded?: (...args: any[]) => void
  onError?: (...args: any[]) => void
}

export const useAudio = (config: Audio_Config) => {
  const { system } = globalStore()
  const player = new Player({
    id: 'x-audio',
    autoplay: true,
    volume: system.volume.musicVolume / 100,
    keyShortcut: false,
    fullscreen: {
      useCssFullscreen: true, // 全屏按钮将会调用页面内全屏
    },
    defaultPlaybackRate: system.volume.playbackRate,
    ...config,
  })

  // player.playNext({
  //     url: config.url,
  // });
  player.play()

  player.on(Events.PLAY, result => {
    config.onPlay &&
      config.onPlay({
        result,
        config,
      })
  })

  player.on(Events.ENDED, result => {
    config.onEnded &&
      config.onEnded({
        result,
        config,
      })
  })
  player.on(Events.ERROR, result => {
    config.onError &&
      config.onError({
        result,
        config,
      })
  })

  return player
}
