JavaScript中播放音频文件的几种常用方法

 更新时间:2023年10月09日 09:55:00   作者:小柴没吃饱  
JS可以用来播放多种声音文件,包括常见的mp3、wav等格式,这篇文章主要给大家介绍了关于JavaScript中播放音频文件的几种常用方法,需要的朋友可以参考下

前言

我们可以使用 <audio> 标签将音频文件添加到页面中。这是播放音频文件而不涉及 JavaScript 的最简单方法。<audio> 标签的 src 属性指定音频文件的地址。它还具有其他有用的属性,例如控制,自动播放和循环。但是有时候,我们想要自动控制并自动播放声音,例如在游戏中,单击或任何其他事件时。在这种情况下,我们希望 JavaScript 根据我们的逻辑来控制和播放文件。

[在 JavaScript 中使用 .play() 播放音频文件]

我们只需创建音频对象实例即可使用 JavaScript 加载音频文件,即使用 new Audio()。加载音频文件后,我们可以使用 .play() 函数对其进行播放。

const music = new Audio('adf.wav');
music.play();
music.loop =true;
music.playbackRate = 2;
music.pause();qqazszdgfbgtyj

在上面的代码中,我们加载一个音频文件,然后简单地播放它。JavaScript 为我们提供了很多灵活性和大量功能。我们可以控制播放速率,循环播放音频,暂停和播放声音。唯一的问题是,一次处理多个声音,与最新技术相比,其控制能力有限。

[使用 Web Audio API 播放音频文件]

尽管设置起来有些麻烦,但是 Web Audio API 为我们提供了很多灵活性和对声音的控制。它是对典型 HTML5 音频的重大改进,并允许复杂的音频处理。它使用 HTML5 音频将音频元素表示为称为音频上下文的有向图样结构上的节点。音频源和目的地之间可以连接许多类型的节点,例如音量节点,可以帮助我们操纵音量。

<audio src='audio_file.mp3'></audio>
const audioContext = new AudioContext();
const element = document.querySelector(audio);
const source = audioContext.createMediaElementSource(element);
source.connect(audioContext.destination)
audio.play();

在这里,我们首先初始化音频上下文,并获得对音频文件源的引用。然后,我们将该源连接到全球目标,然后完成音频设置。

[使用 howler.js 库以 JavaScript 播放音频文件]

howler.js 是一个音频处理库。它使我们能够利用 Web Audio API 的功能和 HTML 5 Audio 的简单性。它广泛用于 react 类组件,以处理基于浏览器的音频,尤其是在播放多个音频源时。它可以使用 Howler 对象控制全局音频上下文,然后使用 Howl 控制音频或一组音频。

<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.1/howler.min.js"></script>
<script>
    var sound = new Howl({
      src: ['https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'],
      volume: 1.0,
      onend: function () {
        alert('We finished with the setup!');
      }
    });
    sound.play()
</script>

除 Internet Explorer 以外的所有主要浏览器都支持所有这些方法。Internet Explorer 不支持 Web Audio API 和 howler.js

附:利用JavaScript实现音频文件的播放和暂停

HTML5 规定了一种通过 audio 元素来包含音频的标准方法。

audio 元素能够播放声音文件或者音频流。

注意看,a.paused表示当前音频的状态,而音频的暂停和播放对应的方法分别为pause()和play() ——-(自认为很值得注意的地方 我当时就犯了这种错误)

<button onclick="clickA(this)">播放/暂停</button>
<audio id="audio" src="raw/1.mp3">您的浏览器不支持</audio>
<script>
    var a = document.getElementById("audio");
    function clickA() {
        //如果暂停   点击即可播放
        if (a.paused) {
            // 播放
            a.play();
            //如果播放  点击暂停
        } else if (a.play()) {
            //暂停
            a.pause();
        }
    }
</script>

总结

到此这篇关于JavaScript中播放音频文件的几种常用方法的文章就介绍到这了,更多相关JS播放音频文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 简单的两种Extjs formpanel加载数据的方式

    简单的两种Extjs formpanel加载数据的方式

    这篇文章介绍了两种Extjs formpanel加载数据的方式,有需要的朋友可以参考一下
    2013-11-11
  • JavaScript中三个等号和两个等号你了解多少

    JavaScript中三个等号和两个等号你了解多少

    本篇文章主要介绍了js里面的==和===,== 判断如果两边变量的类型不同,而 === 则不做类型转换,有兴趣的可以了解一下
    2017-07-07
  • js 图片懒加载的实现

    js 图片懒加载的实现

    这篇文章主要介绍了js 图片懒加载的实现,帮助大家更好的优化自身网页,提高网页响应速度,感兴趣的朋友可以了解下
    2020-10-10
  • JavaScript创建表格的方法

    JavaScript创建表格的方法

    这篇文章主要为大家详细介绍了JavaScript创建表格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • js验证上传图片的方法

    js验证上传图片的方法

    这篇文章主要介绍了js验证上传图片的方法,可对上传图片的类型、大小等进行限制,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • JS打印彩色菱形的实例代码

    JS打印彩色菱形的实例代码

    本文通过一段简单的实例代码给大家介绍js实现打印彩色菱形的方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • 避免回车键导致的页面无意义刷新的解决方法

    避免回车键导致的页面无意义刷新的解决方法

    相信大家在实现页面局部刷新过程中都遇到过类似的问题:在文本框中输入完要搜索的关键字段,按回车结果整个页面刷新了,局部刷新肯定失败。
    2011-04-04
  • JavaScript实现获取最近7天的日期的方法详解

    JavaScript实现获取最近7天的日期的方法详解

    这篇文章主要想和大家分享一些JavaScript开发中会用到的小技巧,本文主要介绍了js获取最近7天的日期,判断当前日期时间大于指定日期时间等内容,需要的可以参考一下
    2023-04-04
  • 写入cookie的JavaScript代码库 cookieLibrary.js

    写入cookie的JavaScript代码库 cookieLibrary.js

    cookieLibrary.js 写入cookie的JavaScript代码库,需要的朋友可以参考下。
    2009-10-10
  • electron中ipcMain使用示例小结

    electron中ipcMain使用示例小结

    ipcMain模块是Electron架构中实现主进程与渲染进程之间通信的关键部分,ipcMain模块是一个非常重要的组件,本文给大家讲解electron中ipcMain用法示例小结,感兴趣的朋友跟随小编一起看看吧
    2024-04-04

最新评论