Javascript Audio点击播放

dA_*_*OwN 35 javascript audio onclick

我有一个javascript代码,可以在点击时启动声音.它适用于chrome,但在Firefox上它启动onload,但我也想在它上面点击它.

有人可以帮忙吗?

<script>
var audio = new Audio("http://music.ogg" ) ;

audio.oncanplaythrough = function(){
audio.play();
}

audio.loop = true;

audio.onended = function(){
audio.play();
}

</script>

<input type="image" src="http://button.png" onclick="audio.play()">
Run Code Online (Sandbox Code Playgroud)

Aru*_*mar 64

试试这个

  <!DOCTYPE HTML>
  <html>
  <head>
  <title>Audio</title>
  </head>
  <body>

    <script>
  function play(){
       var audio = document.getElementById("audio");
       audio.play();
                 }
   </script>

<input type="button" value="PLAY"  onclick="play()">
<audio id="audio" src="http://dev.interactive-creation-works.net/1/1.ogg" ></audio>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)


小智 15

JavaScript

function playAudio(url) {
  new Audio(url).play();
}
Run Code Online (Sandbox Code Playgroud)


HTML

<img src="image.png" onclick="playAudio('mysound.mp3')">
Run Code Online (Sandbox Code Playgroud)


大多数现代浏览器都支持,并且易于嵌入到 HTML 元素中。

  • 如果有人遇到延迟,只需在页面加载时使用“var audio = new Audio(url);”即可。然后通过 `audio.currentTime = 0; 触发它 音频.播放();`。仅当声音短时播放时才需要重置当前时间 (5认同)

小智 5

那行得通

<audio src="${ song.url }" id="audio"></audio>
<i class="glyphicon glyphicon-play-circle b-play" id="play" onclick="play()"></i>

<script>
    function play() {
        var audio = document.getElementById('audio');
        if (audio.paused) {
            audio.play();
            $('#play').removeClass('glyphicon-play-circle')
            $('#play').addClass('glyphicon-pause')
        }else{
            audio.pause();
            audio.currentTime = 0
            $('#play').addClass('glyphicon-play-circle')
            $('#play').removeClass('glyphicon-pause')
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)


Ahm*_*azi 5

你可以用两行来做

let playSound = () => new Audio("src").play()
Run Code Online (Sandbox Code Playgroud)
<button onclick="playSound()">Play</button>
Run Code Online (Sandbox Code Playgroud)