ToB企服应用市场:ToB评测及商务社交产业平台

标题: vue3使用音频audio标签 [打印本页]

作者: 道家人    时间: 2025-1-21 20:56
标题: vue3使用音频audio标签


  
一、配景

项目使用vue3,需求针对告警进行语音提示,点击“播放音频”按钮进行语音提示:

二、页面


三、标签介绍

\<audio> 标签中的 preload 属性用于控制浏览器在页面加载时如那边理音频文件的预加载。preload 属性可以接受以下几个值:

使用 preload="auto" 的优点是可以大概提高用户体验,因为音频文件会更快地准备好播放,尤其是在用户可能会立即播放音频的情况下。不外,使用时也要思量到用户的带宽和流量限定。
四、代码

   音频文件配置
  

   xx.vue
  1. <div class="param">
  2.   <a-button @click="playAlarmContent">播放音频</a-button>
  3.   <audio ref="audioRef" :src="audioSrc" preload="auto"></audio>
  4. </div>
  5. const audioSrc = ref(new URL('@/assets/audio/emergency.mp3', import.meta.url).href);
  6. const audioRef = ref(null);
  7. const addParam = ref({
  8.   "alarmChoice": "2",
  9. });
  10. //智能语音播放 0--智能语音播放  1----声音文件告警   2---静音
  11. const playAlarmContent = (context) => {
  12.   if (addParam.value.alarmChoice == 2) {
  13.     audioRef.value.pause()
  14.     return
  15.   } else if (addParam.value.alarmChoice == 1) {
  16.     audioRef.value.play()
  17.   }  else if (addParam.value.alarmChoice == 0) {
  18.     // context = t('Alaram_temperatureAlarm_low')
  19.     const utterance = new SpeechSynthesisUtterance(context);
  20.     window.speechSynthesis.speak(utterance);
  21.   }
  22. };
复制代码
五、代码说明

场景1:针对加载固定格式的比如MP3文件,可直接使用<audio>标签

  1. <audio ref="audioRef" :src="audioSrc" preload="auto"></audio>
  2. const audioSrc = ref(new URL('@/assets/audio/emergency.mp3', import.meta.url).href);
  3. const audioRef = ref(null);
  4. audioRef.value.play()        //播放
  5. audioRef.value.pause()        //暂停
复制代码
注意点:

场景2:针对播放告警内容,比如中文或者英文词条情况

  1. // context = t('Alaram_temperatureAlarm_low')
  2.     const utterance = new SpeechSynthesisUtterance(context);
  3.     window.speechSynthesis.speak(utterance);
复制代码
注意点:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4