2015-01-05 3 views
1

Web Audio API의 경우 start()의 지속 시간을 변경하는 방법이 있습니까? 예 : 소리 2 초 동안 재생 된 후, 지금은 내가 (연속 시작을 예약해야합니까 그것은 5 초 대신 3웹 오디오의 start() 지속 시간 변경

또는

에 대한 재생하려는 (0,0,3)를 시작) 이전에 중단 된 곳을 찾으시겠습니까?

미리 감사드립니다.

답변

0

짧은 대답 : 아니오 인수를 사용하여 설정된 기간을 변경할 수 없습니다.

긴 대답은 :

그래서 start 3 개 인수, when, offset, duration을 받아들입니다. 그러나 all of those are optional. duration 인수를 전달하지 않으면 버퍼가 끝날 때까지 계속 재생됩니다 (또는 loop 속성이 true으로 설정된 경우 계속 반복됩니다).

그래서 원하는 방법으로 수행하는 한 가지 방법은 에 duration 인수를 전달하지 않고 5 초 후 재생을 중지하려면 stop 함수를 호출하는 것입니다. stopwhen 매개 변수를 사용하여 고급으로 예약 할 수도 있습니다. 따라서 귀하의 경우에는 2 초 표시에서 stop(context.currentTime + 3)과 같은 이름을 부를 것입니다.

+0

고마워, 그게 내 질문을 해결했지만 지금은 stop() 솔루션에서 비롯된 새로운 질문입니다. duration은 실제로 사운드 버퍼를 종료하지 않지만 stop()은 사운드 버퍼의 동일한 범위를 무기한으로 재생하려는 경우 (예 : 사용자 입력 변경에 기반), 이렇게 좋은 접근 방법은 무엇입니까? –

+0

사용자 입력 이벤트의 콜백에서'stop' 함수를 호출 할 수 있습니다. 그렇게하면 사용자 입력이 발생하는 즉시 (또는 지연 후) 중지 할 수 있습니다. – notthetup

+0

죄송합니다. 제 질문을 분명히 전달하지 않았을 수 있습니다. 무한정으로, 나는 루프와 같은 의미였습니다. 말하자면, 지점 A에서 지점 B까지 (지점 B가 동적으로 변경 가능함) 여러 번 재생하고 싶을 때, 지점 B의 정의 후에 정지를 사용하면 지점 A에서 지점 B까지 다시 재생할 수 없습니다. . –