2013-11-15 3 views
3

soundPool에서 play 메서드를 사용하는 경우 사운드를 재생하기위한 별도의 스레드가 자동으로 만들어 지나요? 특히 무한 루프로 반복하는 경우에 특히 그렇습니다. 또는 UI 스레드를 사용하여 사운드를 재생합니까?Soundpool 재생 방법이 자체 스레드를 만드나요?

내 응용 프로그램이 무작위로 충돌하기 때문에 묻습니다. UI 스레드를 끝내기 때문입니다. 내 soundPool 루프를 자체 프로세스가있는 서비스에 배치하는 것을 고려합니다.

답변

1

SoundPool은 구성 방법에 따라 여러 개의 스레드를 만들 수 있습니다. 앱이 실행되는 동안 나타나는 스레드 세트를 확인하십시오 (adb shell ps -t 또는 DDMS의 스레드보기 사용). "SoundPool", "SoundPoolThread"및 "AudioTrack"이 표시됩니다.

"오버플로"스레드는 실제로 충돌 원인이 아닙니다. 크래시 세부 정보가 포함 된 여기에 새로운 질문을 게시 할 수 있습니다 (특히 logcat 출력). 어쩌면 누군가가 왜 실패하고 있는지 알아낼 수 있습니다.

+0

죄송합니다. 멍청한 질문이 있으면 어디에서이 명령을 입력해야합니까? 나는 logcat을 작동시킬 수만 있다면 크래시 문제를 스스로 해결할 수 있다고 생각합니다.하지만 그것은 별개의 문제입니다 :)이 질문은 사운드 풀을 좀더 이해하고, 고맙습니다. :) –

+0

ADB 문서 : http://developer.android.com/tools/help/adb.html DDMS 문서 : http://developer.android.com/tools/debugging/ddms.html. DDMS가하는 대부분의 기능은 Eclipse ADT 플러그인 (http://developer.android.com/tools/sdk/eclipse-adt.html)에 내장되어 있습니다. 하나 또는 둘 다를 사용해야하지만 한 번에 둘 다 사용할 수는 없습니다 (둘 다 장치에 연결하려고하면 서로 밟을 수 있습니다). logcat은 DDMS, ADT 또는'adb logcat'만으로 볼 수 있습니다. – fadden