cor*_*zza 25 javascript audio html5 html5-audio
这就是"存储"声音的方式:
<audio id = "hammer" src="res/sounds/Building/hammer.wav"></audio>
Run Code Online (Sandbox Code Playgroud)
在实际游戏中(我使用声音),我用它来播放声音:
function playSound(soundid)
{
document.getElementById(soundid).currentTime = 0;
document.getElementById(soundid).play();
}
Run Code Online (Sandbox Code Playgroud)
但声音只是第一次播放,而且永远不会再播放!我尝试将控制台中的"currentTime"重置为0,但我确实得到了这个:
>document.getElementById("hammer").currentTime = 0
0
>document.getElementById("hammer").currentTime
0.340...
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决?
DTr*_*ejo 24
请参阅此幻灯片以及前面三张Evan Wallace和Justin Ardini关于html5游戏开发的演示文稿.
对于制作一些精彩游戏的所有资源,他们的谈话的一部分:http://madebyevan.com/gamedevclass/
截至目前,音频仍无法在所有浏览器中保持一致:
- 必须在Chrome中重新加载元素,否则它只会播放一次
- 不得在Firefox中重新加载元素,否则会有延迟
function playSoundEvent() {
if (window.chrome) elems[index].load()
elems[index].play()
index = (index + 1) % elems.length
}
Run Code Online (Sandbox Code Playgroud)
我最近用html5解决了这个问题.到处都工作,除了野生动物园.在调用play()之前使用load()解决了这个问题.当事件处理程序触发声音时,它还有助于确保声音效果不会与重度答题器重叠.
Here what I used
<audio id="sound-one" preload="auto">
<source src="http://myurl/foo.mp3"></source>
<source src="http://myurl/foo.ogg"></source>
</audio>
<a href="#" id="navigation-id">click here</a>
Jquery
$("#navigation-id") //this attached is to an element on the page
.mouseover(function() {
sound-one.load();
sound-one.play();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13088 次 |
| 最近记录: |