移动 jquery onclick 不播放音频文件

mobile jquery onclick does not play audio file?

本文关键字:音频 文件 播放 jquery onclick 移动      更新时间:2023-09-26

这是我的脚本

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

希望对您有所帮助。