在JS中无法播放声音

时间:2011-11-29 13:12:06

标签: javascript

这是新代码。仍然没有声音。

这在外部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>

2 个答案:

答案 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