1

这是我的脚本

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>

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

或者对于我正在做的事情有更好的解决方案吗?

4

1 回答 1

1

您编写它的方式应该会产生一些 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;
}

我个人建议使用 HTML5audio标记,如果需要,可以使用嵌入式选项。

<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

希望对您有所帮助。

于 2013-01-25T00:51:27.023 回答