chrome 禁止自动播放解决

chrome 禁止自动播放解决

使用 Howl.js进行解决

目前是我了解到的最佳解决方案

注意本文使用的是 vite+ts,使用vue3

import { Howl } from 'howler'
import defaultMp3 from './Alarm01.mp3'

//ws
const wsUrl = process.env.NODE_ENV !== 'development'
  ? `ws://${location.hostname}:${location.port}/websocket/customWs/REAL_TIME_ALARM/${curUserName.username}?token=${hasToken}`
  : `ws://192.168.2.230:9203/customWs/REAL_TIME_ALARM/${curUserName.username}?token=${hasToken}`
const router = useRouter()

const { data } = useWebSocket(wsUrl, { autoReconnect: false })
watch(data, async (val: string) => {
  if (val) {
    const payload = JSON.parse(val) as AlarmMsg
    if (payload.type === 'popup') {
      await ElNotification.closeAll()
      ElNotification({
        title: '告警提示',
        message: h(
          'a',
          {
            style: { cursor: 'pointer' },
            onClick: () => {
              router.push({ name: 'alarmRecord', params: { alarmRecordId: payload.alarmRecordId, strategyType: payload.strategyType } })
              menuStore.setLeftMenuActive('/alarmManagement')
              menuStore.setRightMenuActive('/alarmRecord')
            },
          },
          payload.msg,
        ),
        duration: 3000 * 10,
        position: 'bottom-right',
        type: 'warning',
      })
    }
    else {
      const sound = new Howl({
        src: payload.msg ? getPreviewUrl() + payload.msg : defaultMp3,
      })
      // 播放声音
      sound.play(undefined, false)
    }
  }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值