단순한 효과음 재생은 아주 손쉽게 구현할 수 있으나, 루프가 걸린 효과음이라면 말이 달랐다.
우선 효과음 자체를 단순 반복재생하는 것 만으로는 이어지는 사운드를 만들어 낸다는게 불가능했다.
아마 효과음 음원의 첫 시작부분과 끝 부분의 싱크가 맞지 않기 때문일거란 추측을 했다.
우선 구한 효과음을 가지고 무료 배포판 GoldWave를 통해 편집을 해보기로 했다.
위 캡처는 가져온 무료 경적 사운드 중 일부를 단순히 자른 음원의 파형인데, 눈여겨 볼것은
사람의 귀에는 단순히 한번의 음으로 들리는 음에도 처음부터 끝까지 미묘한 파형이 존재한다는 것이다.
한 음원을 늘이거나 줄이고 싶을 때, 붙이거나 잘라내고 난 뒤 파형의 높낮이가 일치하지 않는 부분이 있다면
연속재생시 뚝뚝 끊기거나 부자연스러운 (마치 렉걸린 컴퓨터에서 나는 사운드처럼) 소리를 들을 수 있다.
다음은 몇번의 시행착오를 통해 완벽하지 않지만 끊김이 거의없이 이어지는 음원을 만든 모습이다.
경적 사운의 파형중 특정 높이에서 시작해 특정 높이에서 끝나는 동일한 부분을 찾고자 하였고,
이를 파형이 끊기지 않도록 이어붙여 긴 사운드를 만든 것이다.
이를 통해서 약 1초간 재생되는 기존 음원을 15초 이상은 물론 어디까지나 늘릴 수 있게 되었다.
하지만 후에는 안드로이드에서 음원 재생을 하는데에서 긴 효과음을 사용하는게 부적합하다 생각해 프로젝트에는
사용하지 않았다.
다음은 반대로 매우 짧은 텀의 경적 사운드를 추출해 내는 모습인데, 파형을 자세히 확대해보면 위와 같은 모습을 볼 수 있고
시작과 끝이 극명하기 때문에 편집하는데는 보다 유용하기도 했다. 이 작업으로 약 0.5초 가량의 짧은 음원 파일을 추출할 수 있었다.
이제 이렇게 얻은 사운드를 안드로이드 프로젝트에 적용하고 SoundPool의 무한루프와 autoResume(), autoPause() 와 플래그 변수를 적절히 사용하면
원하는 구현물을 얻을 수 있을 것이다 :)
'ANDROID' 카테고리의 다른 글
[안드로이드] Swipe View 적용을 위한 TabbedActivity 생성 및 풀스크린 레이아웃 적용 (0) | 2018.04.19 |
---|---|
[안드로이드] 안드로이드 Toast 메시지 딜레이를 조정하자 (0) | 2018.04.12 |
[안드로이드] 구글맵에서 GeoCoder와 Animation Listener를 활용해 검색 위치 표시하기 (0) | 2018.04.10 |
[안드로이드] onClickListener와 onTouchListener에 의한 Memory Leak 잡기 (0) | 2018.04.05 |
[안드로이드] 디코딩 함수를 return 값을 통해 값을 넘기지 않고 변수 자체를 다루도록 해보았다 (0) | 2018.03.29 |