我试图创建一个在按下时播放声音的链接。我找到了a solution describing how to do this,但是当我实现它时,我无法产生声音。相关的HTML如下。
<div class="choices">
<a class="buttons" id="choice1" href="#" onclick="choiceSelected();return false;"></a>
<a class="buttons" id="choice2" href="#" onclick="choiceSelected();return false;"></a>
<a class="buttons" id="choice3" href="#" onclick="choiceSelected();return false;"></a>
<a class="buttons" id="choice4" href="#" onclick="choiceSelected();return false;"></a>
</div>
这是javascript(它位于我文档头部链接的外部文件中):
function choiceSelected(){
var audio = new Audio("buttonClick.mp3");
audio.play();
console.log("Audio should have played");
}
我添加了console.log("Audio should have played");
以测试函数是否正常工作。控制台显示&#34;音频应播放&#34;并报告没有错误。一切似乎都在起作用,除了没有声音产生。声音文件buttonClick.mp3
位于正确的路径中。
我尝试过使用不同的文件类型(OGG,AAC等),但没有一种可以使用。我还尝试用我知道有效的在线文件的链接替换文件,所以我不认为这是文件的问题。
我看到Safari没有播放音频来保存电源有一些问题,但那些文章看起来至少已有2-3岁了,所以我不确定是不是问题(如果它仍然是一个问题,你可以告诉我吗。
非常感谢任何有关使音频工作的帮助。
答案 0 :(得分:0)
我无法告诉你问题是什么,但也许你可以尝试看看路径是否正确,我的意思是,水平,也许应该是&#34; ../ audio.mp3&# 34;
您也可以尝试使用音频标签播放
<audio id="myAudioTag">
<source src="../file.mp3" type="audio/mp3" />
</audio>
请注意,我没有使用&#34;控件&#34;属性,因为我不想让它显示。
在脚本中,你应该有这样的东西
document.getElementById('myAudioTag').play();
答案 1 :(得分:0)
感谢您的帮助,但事实证明这是一个损坏的文件。原始代码有效。