使用jQuery 1.4播放声音的跨平台,跨浏览器方式?

Eri*_*rin 22 audio jquery

我正在尝试让jQuery在元素悬停/点击上播放声音.(这就像没有闪存的Flash网站)

我尝试过跨平台,跨浏览器方式推荐的方法从Javascript播放声音?,jQuery Sound插件和其他一些教程没有任何成功.我假设这是因为他们自2008年以来没有更新过.

有没有人有任何建议?

Del*_*ani 33

不需要任何这些.HTML标记与JavaScript相结合,可以解决问题.

<audio id="soundHandle" style="display: none;"></audio>
<script>
  soundHandle = document.getElementById('soundHandle');
  soundHandle.src = '/blah/blah.mp3';
  soundHandle.play();
</script>
Run Code Online (Sandbox Code Playgroud)

  • @Erin:Javascript!= Java,这是纯粹的Javascript.但请注意,这根本不是跨浏览器,因为它使用HTML5"<audio>"元素(根本不在IE上工作,支持不同格式/编解码器的不同浏览器等).请参阅:http://html5doctor.com/native-audio-in-the-browser/. (11认同)
  • 为什么这会被贬低?这**应该是**的方式.是的,它不是跨浏览器(尚未),但它很快就会出现**它是标准**.实际上,目前唯一支持**的浏览器是Internet Explorer.资料来源:http://caniuse.com/#feat=audio (4认同)
  • 不,有更多的浏览器不支持它,特别是在移动领域.此外,该问题强调跨浏览器和跨平台兼容性.当解决方案适用于不到50%的市场时,它不满足此要求. (2认同)

Jak*_*mpl 6

实际上,不可能以真正的跨浏览器兼容方式进行,例如iPhone只能在专用播放器"页面"上播放声音.但是,其他答案中的某些插件应该可以完成大多数(桌面)浏览器的工作.


Thi*_*oyd 5

音频标签在某些浏览器中对我不起作用,所以这就是我完成它的方式:

function playBuzzer(){
        $("body").append("<embed src='/web/sounds/Buzz.mp3' autostart='true' loop='false' width='2' height='0'></embed>");
}
Run Code Online (Sandbox Code Playgroud)

每当我想播放声音(onmouseover,onclick,onload ......)时,我都会调用此函数.