Search code examples
javascripthtmlmp3

Make a span to play music(mp3) with JavaScript


I need your help, because I want to make a span to play music. I made a Javascript code and tried to edit the HTML, but the span is still not clickable. I am not sure that this would be the best solution for what I want.

This is my HTML:

<div class="col-md-4">
      <div class="service-box">
        <div class="service-ico">
          <span id="hang1" class="ico-circle"><i class="ion-play"></i></span>
        </div>
        <div class="service-content">
          <h2 class="s-title">Magyar hangminták</h2>
          <p class="s-description text-center">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Magni adipisci eaque autem fugiat! Quia,
            provident vitae! Magni
            tempora perferendis eum non provident.
          </p>
        </div>
      </div>
    </div>

And this is the JS:

var hang1 = new Audio();
hang1.src = "hang1.mp3"

$("#myspan").click(function(){
    hang1.play()
})

Solution

  • Add to html <audio> tag and the sources of music in it.

    HTML

    <audio id="myAudio">
      <source src="horse.ogg" type="audio/ogg">
      <source src="horse.mp3" type="audio/mpeg">
    </audio>
    
    <div class="col-md-4">
      <div class="service-box">
        <div class="service-ico">
           <button onclick="playAudio()" type="button"><span id="hang1" class="ico- 
           circle"><i class="ion-play"></i></span></button>
        </div>
        <div class="service-content">
          <h2 class="s-title">Magyar hangminták</h2>
          <p class="s-description text-center">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Magni adipisci eaque 
            autem fugiat! Quia,
            provident vitae! Magni
            tempora perferendis eum non provident.
          </p>
        </div>
      </div>
    

    JS

    var x = document.getElementById("myAudio"); 
    
    function playAudio() { 
      x.play(); 
    }