播放器问题 [复制链接]

管理员组

技术实现摘录

音频全局单例 + 请求竞态控制
// audio.js - 全局唯一 Audio 实例
let audioInstance = null
export const getAudio = () => audioInstance || (audioInstance = new Audio())

// music.js - playRequestId 递增丢弃过期请求
let playRequestId = 0
async function playFromQueue(index) {
  const rid = ++playRequestId
  stopAudio()
  loading.value = true
  const data = await fetchAPI({ type: 'json', ids: song.id })
  if (rid !== playRequestId) return  // 后面的请求已覆盖,丢弃本次
  audio.src = data.url
  audio.play()
}
最新回复

请先登录后再回复 登录

uid:1 管理员组
关注
错过了不该错过的人,那就是遗憾!
发帖 66
评论 76
粉丝 1
关注 0
发新帖
目录
播放器问题