<template>
  <div></div>
</template>

<script>
export default {
  name: 'AudioPlayer',
  props: ['src'],
  data() {
    return {
      backgroundAudioManager: null,
      currentTime: 0,
      duration: 0,
      timeUpdateTimer: null
    }
  },
  mounted() {
    this.backgroundAudioManager = wx.getBackgroundAudioManager()
    
    // 设置音频信息
    this.backgroundAudioManager.title = '有声电子书'
    this.backgroundAudioManager.epname = '章节播放'
    this.backgroundAudioManager.singer = 'EpicSoul'
    this.backgroundAudioManager.coverImgUrl = ''
    
    // 监听播放事件
    this.backgroundAudioManager.onPlay(() => {
      this.startTimeUpdate()
      this.$emit('play')
    })
    
    // 监听暂停事件
    this.backgroundAudioManager.onPause(() => {
      this.stopTimeUpdate()
      this.$emit('pause')
    })
    
    // 监听停止事件
    this.backgroundAudioManager.onStop(() => {
      this.stopTimeUpdate()
      this.$emit('pause')
    })
    
    // 监听播放结束事件
    this.backgroundAudioManager.onEnded(() => {
      this.stopTimeUpdate()
      this.$emit('ended')
    })
    
    // 监听错误事件
    this.backgroundAudioManager.onError((err) => {
      console.error('背景音频播放错误:', err)
      this.stopTimeUpdate()
    })
    
    // 设置音频源
    if (this.src) {
      this.backgroundAudioManager.src = this.src
    }
  },
  methods: {
    play() {
      if (this.backgroundAudioManager.src) {
        this.backgroundAudioManager.play()
      }
    },
    pause() {
      this.backgroundAudioManager.pause()
    },
    seek(time) {
      this.backgroundAudioManager.seek(time)
    },
    startTimeUpdate() {
      this.stopTimeUpdate()
      this.timeUpdateTimer = setInterval(() => {
        this.currentTime = this.backgroundAudioManager.currentTime || 0
        this.duration = this.backgroundAudioManager.duration || 0
        this.$emit('timeupdate', {
          currentTime: this.currentTime,
          duration: this.duration
        })
      }, 100)
    },
    stopTimeUpdate() {
      if (this.timeUpdateTimer) {
        clearInterval(this.timeUpdateTimer)
        this.timeUpdateTimer = null
      }
    }
  },
  watch: {
    src(newSrc) {
      if (newSrc) {
        this.backgroundAudioManager.src = newSrc
      }
    }
  },
  beforeDestroy() {
    this.stopTimeUpdate()
    // 注意：不要销毁backgroundAudioManager，因为它是全局的
  }
}
</script>

<style scoped>
/* AudioPlayer组件样式 */
</style>