0
OpenAL에서 재생할 사운드가 너무 많아서 소스의 수가 너무 많습니다. 때때로 일부 소스는 alSourceStop 함수를 사용하여 멈추어야합니다. 그러나 종종 깨진 사운드를 생성합니다 (음파 붐),이 현상을 피하는 방법?소리를 멈추는 방법 OpenAL에서 부드럽게하기
OpenAL에서 재생할 사운드가 너무 많아서 소스의 수가 너무 많습니다. 때때로 일부 소스는 alSourceStop 함수를 사용하여 멈추어야합니다. 그러나 종종 깨진 사운드를 생성합니다 (음파 붐),이 현상을 피하는 방법?소리를 멈추는 방법 OpenAL에서 부드럽게하기
참고 : iOS 개발자가 아니며 다른 플랫폼에서 사용했을 때의 해결책을 보여줍니다.
당신은 그것을 멈추기로 결정한 후 일정 시간 동안 소스의 게인을 점차적으로 변경함으로써 스스로 사운드 페이드 아웃을 구현할 수 있습니다. 현재 시간 stopTime
- - 기본적으로, 그 페이드 아웃
now
없이 소스의 이득이 의사 originalGain
에서
float t = now - stopTime;
float d = 10
if(t > d)
//Stop sound and delete source
else
alSourcef(source, AL_GAIN, originalGain * (1F - t/d))
을 할 필요가 무엇인가의 순간에 당신이 소스를 10
중지하기로 결정 - 시간을 페이드 아웃
이 값을 사용하면 전체 게인과 0 사이를 선형으로 보간 할 수 있으며 사운드 효과가 손상되는 것을 방지 할 수 있습니다.
대단히 감사합니다. 내 프로젝트에서 시도해 보겠습니다. – user7733855
작동합니다! 감사, – user7733855