2016-09-15 5 views
0

자바 스크립트에서 Web Audio API로 작업하고 있습니다. 현재 프로젝트의 일부에는 루퍼가 포함되어 있으므로 루퍼의 시작점과 끝점을 동적으로 변경해야합니다. 어떤 노력하고 있습니다.JS/Web Audio : 재생하는 동안 loopStart로 바로 이동하려면 어떻게해야합니까?

하지만 내가 설정할 때 시작 지점으로 이동하려면 오디오 파일의 재생 위치가 필요합니다. 나는 인터넷 검색을하고 며칠 동안 사양을 읽었지만 대답을 찾을 수없는 것 같습니다.

start() 함수로 설정할 수 있다는 것을 알고 있지만 이미 재생 중일 때 변경해야합니다. 감사합니다.

+0

루프 포인트가 변경되면 즉시 start()를 시작하는 이벤트를 시작하는 방법을 묻는 중입니까? – William

+0

예, 새로운 AudioBufferSource를 만들지 않고 새로운 지점으로 이동할 수있는 방법이 있었으면 합니다만 ... 그것은 현재의 재생 위치를 바꾸는 엄청난 노력 (코드 라인이 아니라, 무슨 일이 일어나고 있는지 이론적으로)처럼 보입니다. –

답변

1

내가하려는 일을 이해한다면이 방법을 사용하는 유일한 방법은 동일한 버퍼를 사용하여 AudioBufferSource을 새로 만드는 것입니다. 이 새로운 AudioBufferSource을 원본과 동일한 루프 포인트로 조정 한 다음 start()에 올바른 시작 시간과 오프셋을 지정하여 호출하십시오.

+0

정확합니다. 다른 모든 오디오 프로그래밍에서 현재 재생 지점을 동적으로 변경하는 방법이있었습니다. 웹 오디오 API에서는 그렇게 보이지 않습니다. 새로운 AudioBufferSource를 다시 시작하고 새로운 시점에서 시작해야합니다. 아마도 다른 언어/라이브러리에서 전체 그림을 얻지는 못하지만 상당히 비효율적 인 것처럼 보입니다. –

+1

AudioBufferSource의 생성 (및 파기)은 매우 가볍습니다. AudioBufferSource 노드간에 기본 AudioBuffer를 공유 할 수 있습니다. –