audio用法

简介: 之前老早之前写的 但不是markdown格式,总觉得不爽这个记录下吧都比较简单直接上代码吧

1. 前言


之前老早之前写的 但不是markdown格式,总觉得不爽

这个记录下吧

都比较简单直接上代码吧


2. html



<audio src="./李白.mp3" controls> 浏览器不支持</audio> <br>
    <button onclick="playBtn()">播放</button>
    <button onclick="pauseBtn()">暂停</button>
    <button onclick="volumeBigBtn()">音量+</button>
    <button onclick="volumeSmBtn()">音量-</button>
    <button onclick="rateBtn()">倍速</button>
    <button onclick="quickBtn()">快进10秒</button>
    <button onclick="muteBtn()">静音</button>
    <button onclick="resetBtn()">重播</button>



3. js



// 1. 获取 audio 对象
        var audio = document.querySelector("audio")
        console.log(audio);
        // 查看标签的属性
        console.dir(audio);
        window.onload = function () {
            console.log("时长 onload:", audio.duration);
        }
        console.log("时长:", audio.duration);
        // 音频的 一些钩子函数
        audio.oncanplay = function () {
            console.log("时长 oncanplay:", audio.duration);
        }
        // 播放
        function playBtn() {
            // JS 自带的API/ 方法
            audio.play()
        }
        //暂停
        function pauseBtn() {
            showVo.innerHTML = "暂停状态:"+audio.paused
            audio.pause()
            console.log( "暂停状态:"+audio.paused);
        }
        //  声音放大 0 -1
        function volumeBigBtn() {
            audio.volume = audio.volume < 1 ? audio.volume + 0.1 : 1
            if (audio.volume >= 1) {
                alert("声音已经最大了")
            }
            showVo.innerHTML = audio.volume
        }
        // 声音减小
        function volumeSmBtn() {
            audio.volume = audio.volume > 0 ? audio.volume - 0.1 : 0
            if (audio.volume <= 0) {
                alert("声音已经最小了")
            }
            showVo.innerHTML = audio.volume
        }
        // 倍速
        function rateBtn() {
            // 最高是16倍
            audio.playbackRate += 0.1
            // audio.playbackRate -= 0.1
            showVo.innerHTML = "倍速" + audio.playbackRate
        }
        // 快进指定的秒数
        function quickBtn() {
            // 单位是秒
            showVo.innerHTML = "时间:" + audio.currentTime
            audio.currentTime += 10
        }
        // 静音
        function muteBtn() {
            audio.muted = true
            showVo.innerHTML = "静音状态:" + audio.muted
        }
        //重播
        function resetBtn() {
            // 重新加载音频元素
            audio.load()
            audio.play()
        }




相关文章
|
6月前
|
机器学习/深度学习 人工智能 编解码
AI视频生成也能自动补全!Wan2.1 FLF2V:阿里通义开源14B视频生成模型,用首尾两帧生成过渡动画
万相首尾帧模型是阿里通义开源的14B参数规模视频生成模型,基于DiT架构和高效视频压缩VAE,能够根据首尾帧图像自动生成5秒720p高清视频,支持多种风格变换和细节复刻。
1141 9
AI视频生成也能自动补全!Wan2.1 FLF2V:阿里通义开源14B视频生成模型,用首尾两帧生成过渡动画
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
388 0
|
7月前
|
机器学习/深度学习 存储 人工智能
千问QWQ-32B/满血DeepSeek R1部署指南,两种方式轻松玩转热门推理模型
本文介绍了如何利用阿里云CAP平台一键部署QWQ-32B和DeepSeek R1两大热门推理模型。通过应用模板或模型服务两种方式,开发者可快速完成部署并验证模型效果。QWQ-32B在数学、编程等任务上表现出色,而DeepSeek R1凭借强化学习训练,具备高效推理能力。两者均支持API调用及第三方平台集成,助力智能应用开发。
千问QWQ-32B/满血DeepSeek R1部署指南,两种方式轻松玩转热门推理模型
|
存储 自然语言处理 NoSQL
Vector | Graph:蚂蚁首个开源Graph RAG框架设计解读
本文作者设计了一个通用的开源RAG框架,以兼容未来多样化的基础研究建设和工程化应用诉求。
|
网络协议 Java Linux
【cpolar】搭建我的世界Java版服务器,公网远程联机
【cpolar】搭建我的世界Java版服务器,公网远程联机
794 1
|
存储 JSON JavaScript
一盏茶的时间,带你轻松上手Pinia
Pinia,让状态管理再无难题! 作为Vue.js官方推荐的新星级管理库,Pinia为开发者带来前所未有的顺滑体验。你还在为复杂难懂的状态管理代码头疼吗?别急,用Pinia你可以告别一切烦恼!
|
弹性计算 供应链 数据库
阿里云服务器付费类型包年包月、按量付费、抢占式实例区别及适用场景参考
阿里云服务器有包年包月、按量付费、抢占式实例三种付费类型可选,不同类型的模式收费标准与适用场景是不一样的,有的用户由于初次购买阿里云服务器,并不清楚他们之间的区别,以及什么样的情况下应该选择哪种付费类型,本文为大家介绍下阿里云服务器付费类型包年包月、按量付费、抢占式实例区别及适用场景参考。
1449 0
阿里云服务器付费类型包年包月、按量付费、抢占式实例区别及适用场景参考
|
索引
实现九宫格概率抽奖(与往常不同的方法哦)
实现九宫格概率抽奖(与往常不同的方法哦)
357 0
|
弹性计算 Linux Windows
阿里云ECS更换系统时提示主机名不支持windows镜像要求的解决方法
在阿里云上,我们更换ECS云服务器操作系统镜像从Linux镜像更换为Windows镜像时,常常会遇到提示主机名格式不支持windows镜像要求,这是什么缘故呢,那如何才能更改这个系统不提示呢?下面给大家分享一下修改主机名的方法:
745 0
|
SQL 数据采集 JSON
Pandas入门指南:Python中的数据处理与分析
Python的Pandas库是数据科学领域中非常重要的一个库,它使数据清洗和分析工作变得更快更简单。Pandas结合了NumPy的高性能数组计算功能以及电子表格和关系型数据库(如SQL)的灵活数据处理能力。