How To Play Sound In Javascript

Adding sound to your web application can enhance user experience and make your website more interactive. In this blog post, we will learn how to play sound in JavaScript using the HTMLAudioElement and the Web Audio API.

Using the HTMLAudioElement

The HTMLAudioElement is a built-in JavaScript object that can be used to play audio files. It is very simple to use and only requires a few lines of code. Here’s how to play an audio file using the HTMLAudioElement:

const audio = new Audio('path/to/your/audio/file.mp3');;

First, create a new Audio object and pass the path to your audio file as a parameter. Then, call the play() method on the audio object to play the sound.

You can also control various audio properties and events, such as loop, volume, and pause:

audio.loop = true; // Enable looping
audio.volume = 0.5; // Set volume to 50%
audio.pause(); // Pause the audio

Using the Web Audio API

The Web Audio API is a more advanced and powerful way to play and manipulate audio in JavaScript. It provides better control over audio processing, such as filters and effects. Here’s how to play an audio file using the Web Audio API:

const audioContext = new (window.AudioContext || window.webkitAudioContext)();

function playAudio(url) {
    .then(response => response.arrayBuffer())
    .then(data => audioContext.decodeAudioData(data))
    .then(buffer => {
      const source = audioContext.createBufferSource();
      source.buffer = buffer;
    .catch(error => console.error('Error fetching or decoding audio data:', error));


First, create a new AudioContext object. Then, create a function called playAudio that takes the URL of the audio file as a parameter. Inside the function, fetch the audio data and decode it using decodeAudioData(). Once the data is decoded, create a BufferSource node, set its buffer property to the decoded data, connect it to the audio context’s destination (output), and start playing the sound.


In this blog post, we’ve learned how to play sound in JavaScript using the HTMLAudioElement and the Web Audio API. The HTMLAudioElement is simple and easy to use, while the Web Audio API provides more advanced features and control over audio processing. Choose the method that best suits your needs and start adding sound to your web applications!