2014-04-06 3 views
0

내 안드로이드 게임에는 36 개의 떨어지는 볼이 있습니다. 공이 땅에 닿으면 소리가납니다. 소리는 매우 작아서 불과 0.3 초입니다. 그것을 재생하려면 soundpool 클래스를 사용하고 있습니다. 경기에서 36 개의 볼이 모두 빠르게 연속으로 떨어질 수 있습니다. 소리를 여러 번 재생하면 UI 스레드가 차단 될 수 있습니다. 별도의 스레드에서 사운드를 재생하는 것이 좋습니다?별도의 스레드에서 짧은 사운드 연주

답변

1

예! 사운드를 별도의 스레드에서 재생해야합니다. 비슷한 질문에 제공된 솔루션을 확인하십시오. here

+0

사운드 재생마다 새 스레드를 생성 할 때 성능/애니메이션에 영향을 미치지 않으십니까? – user3293494

+0

OpenGL 또는 Canvas를 사용하고 있습니까? OpenGL에서 GLSurfaceView는 UI 스레드와 렌더러 스레드를 생성합니다. Renderer.onDrawFrame()은 가장 높은 FPS를 얻기 위해 최소한의 작업을 수행해야합니다. 사운드, 음악 및 게임 논리 (AI, 물리 등)는 모든 프레임을 실행할 필요가 없으므로 다른 스레드에 넣을 수 있습니다. 사운드를 재생할 때마다 새 스레드를 "생성"할 필요가 없습니다. –

+0

캔버스를 사용하고 있습니다 – user3293494