Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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使用If条件播放音频_Javascript_Html - Fatal编程技术网

如何通过Javascript使用If条件播放音频

如何通过Javascript使用If条件播放音频,javascript,html,Javascript,Html,我想在If条件为true时自动播放音频,我试图在index.html文件中编写此代码,但没有播放声音文件 我尝试了它与按钮点击和工作,但我需要它与如果条件自动当条件为真 <script> var sound1 = new Audio('services.mp3'); var name = function() { if( 29 == 29 ){ sound1.play(); } else { sound1.play();

我想在If条件为true时自动播放音频,我试图在index.html文件中编写此代码,但没有播放声音文件

我尝试了它与按钮点击和工作,但我需要它与如果条件自动当条件为真

<script>
  var sound1 = new Audio('services.mp3'); 

   var name = function() {
    if( 29 == 29 ){
      sound1.play();
    }
    else {
      sound1.play();
    }

   }
</script>

var sound1=新音频('services.mp3');
var name=function(){
如果(29==29){
声音1.播放();
}
否则{
声音1.播放();
}
}
我试过这个代码,当我重新加载页面时,什么也听不到!在控制台调试器中没有错误

有什么想法吗


谢谢

在我看来,您实际上并没有调用您的函数。也许试试这个

<script>
var sound1 = new Audio('services.mp3');
var playSound = function() {
    if( 29 == 29 ){
       sound1.play();
    }
    else {
        sound1.play();
    }
};

playSound(); // Invoke playSound function

</script>

var sound1=新音频('services.mp3');
var playSound=函数(){
如果(29==29){
声音1.播放();
}
否则{
声音1.播放();
}
};
播放声音();//调用播放声音函数

我将你的函数名从
name
更改为
playSound
,因为它与
窗口冲突。name
(由@randomsoull提到)

我觉得你实际上并没有调用你的函数。也许试试这个

<script>
var sound1 = new Audio('services.mp3');
var playSound = function() {
    if( 29 == 29 ){
       sound1.play();
    }
    else {
        sound1.play();
    }
};

playSound(); // Invoke playSound function

</script>

var sound1=新音频('services.mp3');
var playSound=函数(){
如果(29==29){
声音1.播放();
}
否则{
声音1.播放();
}
};
播放声音();//调用播放声音函数

我将函数名从
name
更改为
playSound
,因为它与
窗口冲突。name
(由@randomsoull提及)

video
audio
播放是一种异步活动,它返回
promise
-

let playPromise=新音频('car_horn.wav');
play promise.play()然后(()=>{
console.log('Playing')
})
.catch(e=>{
console.log('发生错误',e.message);

})
视频
音频
播放是一种异步活动,它返回
承诺
-

let playPromise=新音频('car_horn.wav');
play promise.play()然后(()=>{
console.log('Playing')
})
.catch(e=>{
console.log('发生错误',e.message);

})
如果条件在一个函数中,您的
。我没有看到任何调用此函数的代码?另外,在
if
else
中调用
play
,这没有任何意义。29是多少?这个条件是什么意思?代码可读性非常重要。它就像一个测试,检查您的条件是否在函数中。我没有看到任何调用此函数的代码?另外,在
if
else
中调用
play
,这没有任何意义。29是多少?这个条件是什么意思?代码可读性非常重要。这就像检查播放音频的测试一样,上面声明的name在全局范围内,并且与window.name冲突。使用let或iLife将其设置为本地。@mwilson它给了我
未捕获(承诺)的DOMException
匿名
!我会看看@randomSoul的答案。它看起来像是
.play
返回了一个承诺(这可以解释为什么您会遇到这个错误)
上面声明的name
在全局范围内,并且与
window.name
冲突。使用let或iLife将其设置为本地。@mwilson它给了我
未捕获(承诺)的DOMException
匿名
!我会看看@randomSoul的答案。它看起来像是
.play
返回了一个承诺(这可以解释为什么你会遇到这个错误),它可以与Microsoft Edge一起使用,但不能在chrome中使用,也不能在Firefox中使用!它与Microsoft Edge兼容,但不适用于chrome,也不适用于Firefox!