2012-11-02 62 views
1

我正在使用这些声音进行游戏,所以我在整个播放过程中通过JQuery多次调用它们。在fireFox中,声音播放良好,但在Chrome和Safari中,每次只播放一次。HTML5音频无法在某些浏览器中工作

<div class="audio-wrapper"> 

    <audio id="successSound" preload="auto"> 
     <source src="sounds/games-sound-fx/cashtill.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/cashtill.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 

    <audio id="failSound" preload="auto"> 
     <source src="sounds/games-sound-fx/electric.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/electric.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 

    <audio id="moveSound" preload="auto"> 
     <source src="sounds/games-sound-fx/throw.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/throw.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 

    <audio id="hitSound" preload="auto"> 
     <source src="sounds/games-sound-fx/hit.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/hit.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 

    <audio id="missSound" preload="auto"> 
     <source src="sounds/games-sound-fx/miss.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/miss.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 

    <audio id="audio-bg"> 
     <source src="sounds/games-sound-fx/BGmusic.ogg" type='audio/ogg; codecs="vorbis"'></source> 
     <source src="sounds/games-sound-fx/BGmusic.mp3" type='audio/mpeg; codecs="mp3"'></source> 
    </audio> 
</div> 

在剧本我把我的大部分的声音是这样..

var successSound = $("#successSound")[0]; 
successSound.play(); 

但他们中的一些对他们的超时功能。有没有更好的方法来支持所有浏览器?

回答

1

当您播放声音时,它将在音频通道上播放。使用您列出的代码,当您尝试播放第二个声音时,它将尝试在相同的音频通道上播放。如果此时第一个声音尚未完成,则会阻止正在播放的第二个声音。诀窍是有一点Javascript可以告诉音频元素是否已经完成播放&如果不是,请使用不同的播放器。

这里有一些很好的例子代码URL:http://www.storiesinflight.com/html5/audio.html

+0

我已经尝试过了,仍然没有喜悦@Lee西奥博尔德 –

+0

我有一个去这里使用的代码从文章中,我挂:HTTP://的jsfiddle .net/zXxGZ/11 /和它似乎工作。笛声持续几秒钟。如果您重复按播放链接,它会再次播放(反正最多10次)。如果您仍然无法使用它,您是否可以编辑您的答案以包含更全面的代码示例。 –

+0

谢谢队友!你知道我会如何淡化声音吗? @ Lee Theobald –

相关问题