这是我的剧本

function playSound(soundfile) {

document.getElementById("ui-btn-text").innerHTML=document.getElementById("ui-btn-text").innerHTML +
"<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";

}


这是我的代码的一部分

<a style='font-family:Arial,Helvetica,sans-serif;font-size:200%;'
id="ui-btn-text" onclick="playSound('image/button.mp3');"
href="#" data-ajax="false" data-transition="slide"></a>


我不知道为什么音频文件无法播放!

还是我在做什么更好的解决方案?

最佳答案

您编写它的方式应产生一些HTML,例如:

<a style='font-family:Arial,Helvetica,sans-serif;font-size:200%;' id="ui-btn-text" onclick="playSound('image/button.mp3');" href="#" data-ajax="false" data-transition="slide">
    <embed src="image/button.mp4" hidden="true" autostart="true" loop="false" />
</a>


如果它已经被隐藏了,为什么不把它放在页面上某个地方,然后单击按钮时触发音频播放。设置autostart="false",然后在单击按钮时使用JS / JQuery播放mp4。

的HTML

<a style='font-family:Arial,Helvetica,sans-serif;font-size:200%;' id="ui-btn-text" onclick="playSound('ui-btn-sound');" href="#" data-ajax="false" data-transition="slide">
</a>
<embed src="image/button.mp4" hidden="true" autostart="false" loop="false" id="ui-btn-sound" />


的JavaScript

function playSound(id) {
    var audioFile = document.getElementById(id);
    audioFile.Play();
    return false;
}


我个人建议使用HTML5 audio标记,并在需要时返回嵌入式选项。

<audio controls>
    <source src="image/button.mp4" type="audio/mp4">
    <!-- Fail Over -->
    <embed src="image/button.mp4" hidden="true" autostart="false" loop="false" id="ui-btn-sound" />
    <a href="" onclick="playSound('ui-btn-sound')">Play</a>
</audio>


audio标记也有很多方法可以通过JS / JQuery来控制其外观和功能。您可能需要研究audio.canPlayType('audio/mp4');之类的东西。
这是一个较旧的示例,有人挑战我制作一架在每个音符之间没有滞后的钢琴,并允许在播放新音符时停止其他音符:http://www.yrmailfrom.me/projects/html5/piano.php

编辑:
回答了这个问题之后,我受到启发,创建了一个快速的JQM HTML5播放器:http://www.yrmailfrom.me/projects/html5/audioplay.php

希望对您有帮助。

07-24 09:43
查看更多