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