사운드 관련 클래스들은 Seek관련된 메서드를 제공하지 않는다. 따라서 앞서 살펴본 바와 같이 현재 재생위치를 저장한 값이나 재생시키고자 하는 시작위치를 Sound.play()의 startTime값으로 설정하여야 한다.
아래 무비는 0,10000,30000,40000와 같이 재생할 시간을 미리 배열에 저장하여 버튼을 눌렀을 때 해당 배열의 원소 값을 play()의 시작 값으로 설정한 것이다.

재생할 시작 시간을 배열에 설정
var cuePoint:Array = [0,10000,30000,40000]
각 버튼에는 해당하는 원소를 play에 대입
soundChannel = sound.play( cuePoint[0] );


[위 무비는 일정 버퍼타임을 확보한 후에 버튼이벤트가 실행됩니다]

다음은 프로그래스 바를 이용하여 재생시점을 찾아 play()의 시작값으로 대입하는 seek를 다루어 보았다.
계산을 하기위해서는 반드시 알아야 할 변수가 몇가지 있는데 그것이 Sound클래스에서 제공하는 length이다. 이는 사운드의 전체 길이를 반환한다. 그리고 현재 위치를 알수 있는 채널에서 제공하는 position속성이 있다. 이는 현재 재생중인 위치의 값을 반환한다. 이들을 통해 1차 함수를 이용하면 아래와 같은 식이 성립된다.
현재 재생위치 = ( position / length ) * 100
이는 100이라는 최대값을 가지고 계산해 본 것이다.
재생할 위치 = ( length * 100을 기준으로 이동할 위치) / 100
위와 같이 식을 구한 다음 나온 값을 play()에 반영한다.

[위 무비는 일정 버퍼타임을 확보한 후에 버튼이벤트가 실행됩니다]





Posted by 버터백통