이에 대한 나쁜 생각, 거기에 내가
문제는 타이머가 드리프트를 가지고 몇 밀리 초 후에 발사한다는 것입니다 ... 그것을 말했다. 매 500ms마다 실행되는 타이머가있는 간단한 테스트를 수행 한 다음 getTimer()
수를 비교하십시오. 내 실험에서 타이머가 계속 꺼져 있고 자기가 맞지 않는 것처럼 보였습니다. 마지막으로 실행 한 후 getTimer()
차이를 기반으로 발사 시간을 변경하는 자체 수정 타이머를 사용해 보았지만 여전히 안정적이지 않습니다. 프로세서로드가 상승 할 때마다 타이머가 꺼집니다.
이 문제를 해결하는 올바른 방법은 byteArray 데이터를 사운드 소스로 사용하는 것입니다. 샘플링 해상도 계산을 기반으로 미리 스트림에 데이터를 채울 수 있으며 사운드는 정시에 재생되어 거의 보장됩니다. 나는 지금까지 나 자신을하는 무언가를 만들만큼 멀리 가지 않았다. 그러나 이것을 활용할 수있는 몇 가지 라이브러리를 활용할 수 있습니다.
내 상단이 감소 라이브러리 시온하고 내가 안드로이드에 그들을 시도하지 않은 반면
당신이 여기 시온 샘플 http://wonderfl.net/c/qf4b
및 http://tonematrix.audiotool.com/
에서 tonfall 예를 볼 수 있습니다 tonfall, 나도 생각 작동해야한다
디자인 결함이있는 것처럼 저에게 소리. 콜백이 부풀어 오른 경우에만 타이머가 지연됩니다. –
그걸 좀 상세히 설명해 주시겠습니까? 타이머는 기본적으로 매우 정확하지는 않습니다. 각 비트 사이에 서로 다른 크기의 차이가 남습니다. –
최근에 이와 비슷한 것을 만들었습니다. 나는 타이머 클래스도 활용했는데 괜찮 았지만 좋았지는 않았다. 사운드를 재생하는 것은 매우 비용이 많이 드는 작업이며, 최소한의 애니메이션과 결합하면 때로는 내 영화가 비트를 건너 뛰거나 사소한 지연을 추가하는 경우가 있습니다. 나는 그것을 완성 할 길을 찾을 수 없었다. 정확한 지연을 측정하려면 getTimer()를 사용하여 디버그해야합니다. – lostPixels