播放声音而无需安装媒体播放器扩展

问题描述 投票:0回答:2

我想在拍卖网站上嵌入声音。我希望每次有人出价,都会播放声音。我尝试了一个带有给定ID的简单<embed>标签,然后通过javascript sound.play()

声音正在播放,但在IE中,新用户被要求安装媒体播放器扩展“如果他/她信任该网站”。

有没有办法让它播放没有这个消息。以下代码位于页面中:

在HTML中:

<embed src="success.wav" autostart="false" width="0" height="0" id="sound1" 
       enablejavascript="true">

在Javascript中:

function PlaySound(soundObj) {

  var sound = document.getElementById(soundObj);
  sound.Play();
}

并调用该函数:

PlaySound("sound1");
javascript media wav audio-player
2个回答
1
投票

如果您觉得要求用户使用Flash,我建议使用SoundManager2。它在后台使用Flash,但完全通过JavaScript配置,并且可以自定义。

如果你想在浏览器中完全本地化,你可以使用<audio>标签,但你会发现它只能在最新的浏览器中使用,而且你仍然会遇到一些跨浏览器的问题。 This Ajaxian article很好地概述了如何操作以及哪些浏览器支持哪些音频格式。

附:个人意见,如果你不介意:不要先询问用户,不要播放背景音或音乐。永远不要自动播放并始终为用户提供停止或静音的选项。


1
投票

那么这个解决方案在声音管理器2中运行得很好。尽管整个安装文件是2.8mb,但我认为其实际使用的只有一小部分。

我所做的是将以下代码放在标题中:

<script type="text/javascript">

soundManager.url = '<?php echo $root_address; ?>/js/soundmanager/swf/'; 
soundManager.debugMode = false;

soundManager.onload = function() {
  var mySound = soundManager.createSound({
    id: 'aSound',
    url: '<?php echo $root_address; ?>/success.mp3'
  });
}
</script>

并使用以下代码将调用替换为播放声音功能:

soundManager.play('aSound');

我用最简单的API来做。

再次感谢!

© www.soinside.com 2019 - 2024. All rights reserved.