Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
点击播放Javascript音频_Javascript_Audio_Onclick - Fatal编程技术网

点击播放Javascript音频

点击播放Javascript音频,javascript,audio,onclick,Javascript,Audio,Onclick,我有一个javascript代码,可以在单击时发出声音。 它可以在chrome上运行,但在firefox上它是在加载时启动的,但我也希望它在那里单击 有人能帮忙吗 <script> var audio = new Audio("http://music.ogg" ) ; audio.oncanplaythrough = function(){ audio.play(); } audio.loop = true; audio.onended = function(){ audio

我有一个javascript代码,可以在单击时发出声音。 它可以在chrome上运行,但在firefox上它是在加载时启动的,但我也希望它在那里单击

有人能帮忙吗

<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()">

var audio=新音频(“http://music.ogg" ) ;
audio.oncanplaythrough=函数(){
音频播放();
}
audio.loop=true;
audio.onended=函数(){
音频播放();
}

尝试下面的代码片段



音频
函数播放(){
var audio=document.getElementById(“音频”);
音频播放();
}
有效

<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>

函数播放(){
var audio=document.getElementById('audio');
如果(音频暂停){
音频播放();
$(“#播放”).removeClass('glyphicon-play-circle'))
$(“#播放”).addClass('glyphicon-pause')
}否则{
audio.pause();
audio.currentTime=0
$('#play').addClass('glyphicon-play-circle'))
$(“#播放”).removeClass('glyphicon-pause'))
}
}
既然现在有了新的解决方案,这可能是一个更稳健的选择

是该API的原始包装器,用于在使用点以最少的样板文件播放简单的一次性声音。

JavaScript

函数播放音频(url){
新音频(url).play();
}

HTML




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

虽然有几个答案是相似的,但我仍然有一个问题-用户会多次单击按钮,播放自己的音频(或者是意外单击的,或者只是“播放”…)

一个简单的解决方法:

var music = new Audio();
function playMusic(file) {
    music.pause();
    music = new Audio(file);
    music.play();
}
设置音频加载允许每次调用该功能时暂停“音乐”-即使用户多次单击按钮,也可以有效地停止“噪音”(而且也无需关闭按钮,但为了用户体验,您可能需要这样做)。

HTML:

<button onclick="play()">Play File</button>
<audio id="audio" src="https://s3.amazonaws.com/freecodecamp/drums/Heater-1.mp3"></audio>

嗨,谢谢你的回复。它现在在两个浏览器上都启动,没有声音。这里的链接如果有人遇到延迟,只需使用
var audio=new audio(url)页面加载一次。然后通过
audio.currentTime=0触发;音频播放()。只有在短时间内播放声音时,才需要重置当前时间
let play = function(){document.getElementById("audio").play()}