我想在拍卖网站上嵌入声音。我希望每次有人出价,都会播放声音。我尝试了一个带有给定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");
如果您觉得要求用户使用Flash,我建议使用SoundManager2。它在后台使用Flash,但完全通过JavaScript配置,并且可以自定义。
如果你想在浏览器中完全本地化,你可以使用<audio>
标签,但你会发现它只能在最新的浏览器中使用,而且你仍然会遇到一些跨浏览器的问题。 This Ajaxian article很好地概述了如何操作以及哪些浏览器支持哪些音频格式。
附:个人意见,如果你不介意:不要先询问用户,不要播放背景音或音乐。永远不要自动播放并始终为用户提供停止或静音的选项。
那么这个解决方案在声音管理器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来做。
再次感谢!