2016-10-29 5 views
1

현재 개발중인 게임에서 사운드를 재생하는 방법에 어려움을 겪고 있습니다.애니메이션 후 HTML5에서 사운드를 재생하는 방법은 무엇입니까?

애니메이션을 재생 한 후에 사운드를 재생해야하지만 sound.play()를 호출하려고 할 때 필요합니다.

그리고 브라우저는 인간 제스처를 사용하여 소리 만 재생할 수 있다고 말합니다.

누구나 친절하게 여기에서 공유 할 수 있습니다. 감사.

추가 된 ============

나는 모바일 장치에서이 문제가 발생하고있다.

+0

코드를 게시해야합니다. 일반적으로 사운드를 재생하는 것은 매우 간단합니다. 콜백 내에서 오디오 태그 또는 새 오디오 – adeneo

답변

6

샘플 코드가 유용 할 수 있지만이 질문에 jQuery 태그가 지정되어 있으므로이 라이브러리에 대한 솔루션을 찾고 있다고 가정합니다.

$("#element").animate({ 
    opacity: 0.25 
    }, 5000, function() { 
    // animation is complete 
    // play your sound here 
}); 

당신은 documentation에 더 많은 예제를 찾을 수 있습니다 그리고 jQuery.animate 애니메이션 완료 후, 볼 콜백을 소요하고 그것을 실행합니다.

+0

만 사용하면됩니다. Howler.js https : // github .com/goldfire/howler.js/애니메이션 작업을위한 오디오 라이브러리. –

+0

안녕하세요, 귀하의 답변을 높이 평가했지만이 코드는 브라우저에서 사용자가 제스처를 사용하여 소리 만 재생할 수 있다고 언급 한 것처럼 모바일에서 작동하지 않습니다. – POGI

4

@ Remek의 대답은 jQuery를 사용하여 애니메이션을 작성하는 경우에 맞지만 TweenJS에 태그를 추가 했으므로 call을 사용할 수 있으므로 TweenJS 대기열에 함수 호출을 대기시킵니다.

createjs.Tween.get(obj) 
    .to({x:1000}, 3000, createjs.Ease.quadOut) 
    .call(function(tween) { 
     createjs.Sound.play("soundId"); 
    }); 

Tween 대기열 내에서 또는 마지막에 통화를 사용할 수 있습니다. 트윈은 이벤트를 전달하지만 "완료"이벤트가 아니라 "변경"이벤트 만 포함한다는 점에 유의하십시오. 트윈은 반복, 반전 및 추가 애니메이션을 추가하기 위해 지속적으로 연결될 수 있으므로 실제로 "완료"하지 않습니다. 이것이 call 메서드가있는 이유입니다.

call 메서드는 매개 변수와 함수 범위도 허용합니다. "인간의 제스처"에 대한 질문에 대해서는 http://www.createjs.com/docs/tweenjs/classes/Tween.html#method_call


이는 소리 재생 뭔가를 클릭해야합니다 모바일 플랫폼에 주로 적용 (오디오 문맥의 잠금을 해제, 그래서 그냥 한 번 일이있다). 최신 SoundJS가이를 자동으로 처리하여 (스크롤하는 경우에도)를 누르면 빈 소리가 자동으로 재생됩니다. 이 작업을 수행하기 위해 스크롤을 사용하는 것이 더 이상 사용되지 않으므로 사용자가이 작업을 올바르게 수행하기 위해 "클릭/탭"해야 할 수도 있습니다.하지만이 경우에는 SoundJS가 잠금 해제를 처리합니다.

건배.

+0

답변을 주셔서 감사합니다. 휴대 기기에서 실행 해 보셨습니까? 나는 그것을 시도했지만 여전히 "인간의 제스처를 사용하여 소리 만 낼 수있다"는 문제가 있습니다. – POGI

+0

위의 섹션을 참조하십시오. 오디오 컨텍스트를 잠금 해제하려면 장치를 물리적으로 탭해야합니다. – Lanny