vue3使用音频audio标签

embedded/2025/1/21 6:25:51/

在这里插入图片描述

文章目录

  • 一、背景
  • 二、页面
  • 三、标签介绍
  • 四、代码
  • 五、代码说明
    • 场景1:针对加载固定格式的比如MP3文件,可直接使用\<audio>标签
    • 场景2:针对播放告警内容,比如中文或者英文词条情况

一、背景

项目使用vue3,需求针对告警进行语音提示,点击“播放音频”按钮进行语音提示:
在这里插入图片描述

二、页面

在这里插入图片描述

三、标签介绍

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

  • auto:浏览器会在页面加载时尽可能地预加载音频文件。这意味着音频文件会被下载到浏览器的缓存中,以便用户可以尽快播放。通常这是最常用的设置。

  • metadata:浏览器只会预加载音频文件的元数据(如时长、音频轨道等),而不会下载整个文件。这对于减少初始加载时间是有帮助的,尤其是在文件较大时。

  • none:浏览器不会预加载音频文件。这意味着音频文件不会被下载,直到用户点击播放按钮。这样可以节省带宽,但用户可能会在第一次播放时遇到延迟。

使用 preload="auto" 的好处是能够提高用户体验,因为音频文件会更快地准备好播放,尤其是在用户可能会立即播放音频的情况下。不过,使用时也要考虑到用户的带宽和流量限制。

四、代码

音频文件配置

在这里插入图片描述

xx.vue

<div class="param"><a-button @click="playAlarmContent">播放音频</a-button><audio ref="audioRef" :src="audioSrc" preload="auto"></audio>
</div>const audioSrc = ref(new URL('@/assets/audio/emergency.mp3', import.meta.url).href);
const audioRef = ref(null);const addParam = ref({"alarmChoice": "2",
});//智能语音播放 0--智能语音播放  1----声音文件告警   2---静音
const playAlarmContent = (context) => {if (addParam.value.alarmChoice == 2) {audioRef.value.pause()return} else if (addParam.value.alarmChoice == 1) {audioRef.value.play()}  else if (addParam.value.alarmChoice == 0) {// context = t('Alaram_temperatureAlarm_low')const utterance = new SpeechSynthesisUtterance(context);window.speechSynthesis.speak(utterance);}
};

五、代码说明

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

<audio ref="audioRef" :src="audioSrc" preload="auto"></audio>const audioSrc = ref(new URL('@/assets/audio/emergency.mp3', import.meta.url).href);
const audioRef = ref(null);audioRef.value.play()	//播放
audioRef.value.pause()	//暂停

注意点:

  • audioSrc :用于指向mp3文件位置
  • audioRef :和ref名称相同即可关联上
  • auto:浏览器会在页面加载时尽可能地预加载音频文件。这意味着音频文件会被下载到浏览器的缓存中,以便用户可以尽快播放。通常这是最常用的设置。

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

// context = t('Alaram_temperatureAlarm_low')const utterance = new SpeechSynthesisUtterance(context);window.speechSynthesis.speak(utterance);

注意点:

  • context:就是完整的内容,而我例子t(‘Alaram_temperatureAlarm_low’)是解析词条然后返回对应语言的内容。
  • 使用了 Web Speech API 中的 SpeechSynthesisUtterance 和 speechSynthesis 对象来实现文本到语音的功能。
  • SpeechSynthesisUtterance: 这是一个构造函数,用于创建一个语音合成的实例。你可以将要朗读的文本作为参数传递给它。
  • window.speechSynthesis.speak(utterance): 这个方法用于开始朗读 utterance 对象中指定的文本。

http://www.ppmy.cn/embedded/155694.html

相关文章

Notepad++移除所有空格

1.打开Notepad。 2.打开你想要编辑的文件。 3.按下 Ctrl H 打开查找和替换对话框&#xff0c;并选择 “正则表达式”。 4.在 “查找目标” 框中输入 \s。 5.在 “替换为” 框中留空&#xff0c;不填写任何内容。 6.点击 “全部替换” 按钮。

系统服务管理脚本-源码安装httpd

1. 安装包 去apache官网下载httpd包&#xff0c;存入虚拟机 如果需要从其他虚拟机转移到另一个虚拟机 scp httpd-2.4.62.tar.bz2 192.168.1.11: ~ ~是转移的虚拟机的目录 2.解压及环境 tar xfj httpd-2.4.62.tar.bz2 -C /usr/src/ rpm -e httpd --nodeps # 如果系统自带ht…

Azure面试

文章目录 项目地址一、Azure Storage1. What are the benefits of Azure Storage&#xff1f; 二、汇总 项目地址 教程作者&#xff1a;教程地址&#xff1a; 代码仓库地址&#xff1a; 所用到的框架和插件&#xff1a; dbt airflow一、Azure Storage 1. What are the bene…

PyTorch使用教程(15)-常用开源数据集简介

计算机视觉&#xff08;Computer Vision, CV&#xff09;作为人工智能领域的重要分支&#xff0c;其技术发展与应用落地离不开高质量的数据支撑。公开、免费且大规模的计算机视觉开源数据集扮演着至关重要的角色&#xff0c;它们为科研人员提供了标准化的训练平台&#xff0c;加…

Redis性能测试

在使用 Redis 作为缓存解决方案时&#xff0c;进行性能测试以及处理缓存预热、雪崩、击穿等问题是非常重要的。下面将详细介绍这些概念及其应对措施。 1. Redis 性能测试 Redis 性能测试主要是评估 Redis 在高并发场景下的响应时间、吞吐量、稳定性等方面的表现。常见的 Redi…

【经典神经网络架构解析篇】【7】DenseNet网络详解:模型结构解析、创新点、代码实现

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

3.3 OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南

OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南 OpenAI 的 GPT 系列语言模型,包括 GPT-4、GPT-3.5 和 GPT-3,已经成为自然语言处理领域的标杆。无论是文本生成、对话系统,还是自动化任务,开发者都可以通过 API 调用这些强大的模型来增强他们的应用。本文将为您详细介…

Models如何使用Gorm与数据库进行交互?

Gorm是Models与MySQL数据库连接的中间体&#xff08;Models是通过Gorm与数据库连接起来的&#xff09; Golang的代码解析成SQL语句&#xff0c;把查到的数据解析成GOlang的数据结构 GORM 是什么&#xff1f; GORM 是一个 Go 语言的 ORM&#xff08;对象关系映射&#xff09;库…