2014-01-05 3 views
1

재생 끝나기 전에 소리 ( 게임 개발 : 그것은

<audio id="shotSound" preload="auto"> 
    <source src="../sound/shot.mp3" type="audio/mpeg"> 
    Your browser does not support the audio element. 
</audio> 
:이 같은 HTML에 주어진 일부 사운드 파일을 가지고

preload = "auto"는 즉시 init 페이지에 내용을로드해야합니까? 지금 내가 필요로 할 때 소리를 트리거하기 위해 자바 스크립트를 사용하고 있습니다 (키 누름)에 :이 작동

var audio = document.getElementById("shotSound"); 
audio.play(); 

, 내가 (다른 후 한 샷) 연속적으로 또는 단지 빠른 샷을 시도하는 경우 그러나 그것은하지 않습니다 첫 번째 샷 이후의 샷 작업. 그래서, "shot"버튼을 누른다면 어떻게됩니까? 사운드는 반복되는 것처럼 들리므로 - 분명히 틀립니다.

모든 아이디어/제안을 환영합니다! 내가 명확하지 않으면 알려 주시기 바랍니다.

감사합니다.

+0

첫 번째 질문과 관련이 없기 때문에 두 번째 질문을 삭제했습니다. 그러나 새로운 질문으로 자유롭게 질문하십시오. – Philipp

+0

감사합니다. 당신 말이 맞습니다. – trainoasis

답변

0

오디오 태그를 HTML 문서에 넣지 마십시오. 범위에서 shotSound 변수를 유지

shotSound = new Audio(); 
shotSound.src = "../sound/shot.mp3"; 
shotSound.load(); 

를 사용하여 자바 스크립트의 사운드 효과를 미리로드, 그래서 가비지 수집하지 않습니다. 당신이 소리를 재생해야하는 경우 그런 다음, 새로운 오디오 객체를 생성 : 사운드 파일이 이미 캐시되기 때문에

new Audio("../sound/shot.mp3").play(); 

그것은 바로 재생됩니다. 새로운 오디오 객체이기 때문에 동일한 효과의 다른 인스턴스가 동시에 재생되는 것을 방해하지 않습니다.

+0

대단히 감사합니다. – trainoasis