这是新代码。仍然没有声音。
这在外部js文件中 function playSound(color){ var mySound = new buzz.sound(“/ sounds /”+ color,{ 格式:[“ogg”,“mp3”,“acc”] });
mySound.play()
这就在头脑中:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js">
</script>
<script type="text/javascript" src="/sounds/buzz.js">
</script>
<script type="text/javascript" src="sound.js">
</script>
<script type="text/javascript" src="hoverBubbles.js">
</script>
我已对我的网站进行了编程,以便在用户点击图片时播放声音。我用JS做了这个。但有一个问题。在您点击图像后播放声音之前有大约5秒的长时间延迟。我该怎么做才能让声音无延迟地播放?此外,当我试图解决上述问题时,我做了一些事情(我不知道它是什么),我现在根本无法播放声音。
有什么想法吗?
function playSound(color) {
$("#wavLoader").html("<embed src='/sounds/" + color + ".wav' hidden=true starttime='00:00' autostart=true loop=false>");
});
}
<title>Colors</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js">
</script>
<script type="text/javascript" src="hoverBubbles.js"></script>
<script type="text/javascript" src="sound.js"></script>
<link rel="stylesheet" type="text/css" href="heading.css">
<link rel="stylesheet" type="text/css" href="fish.css">
<link rel="stylesheet" type="text/css" href="fishText.css">
<link rel="stylesheet" type="text/css" href="fishBubbles.css">
<style type='text/css'>
</style>
$(document).ready(function() {
$('#fishBlack').mouseover(function() {
$('#bubblesBlack').toggle('slow');
$('#textBlack').toggle('slow');
});
$('#fishBlack').mouseout(function() {
$('#bubblesBlack').hide('slow');
$('#textBlack').toggle('slow');
});
}
$(document).ready(function() {
$('#fishBlack').click(function() {
playSound('black');
});
}
<!--the sound-->
<span id="wavLoader" style="position:fixed; top:-100px;"></span>
答案 0 :(得分:1)
我建议使用现有的库,例如 Buzz,,用它自己的话来说:
Buzz是一个小而强大的Javascript库,允许您使用 轻松利用新的HTML5音频元素。它降级了 优雅地在非现代浏览器上。
API示例:
var mySound = new buzz.sound( "/sounds/myfile", {
formats: [ "ogg", "mp3", "acc" ]
});
mySound.play()
.fadeIn()
.loop()
.bind( "timeupdate", function() {
var timer = buzz.toTimer( this.getTime() );
document.getElementById( "timer" ).innerHTML = timer;
});
工作示例:jsFiddle
答案 1 :(得分:0)
您的脚本返回一个embed标签,该标签又调用用户系统上安装的默认播放器,用于该类型的媒体(可能是Windows Media Player,QuickTime等)。加载播放器需要一些时间,具体取决于客户端机器的速度和(可能)许多播放器已在页面上打开的数量。
您可能希望实施某种形式的预缓冲或使用像Peter提到的第三方库。 Or this one,如果浏览器不支持HTML5,则会提供Flash回退。
使用像jQuery这样的JavaScript框架,还有一些现成的插件,例如jPlayer。