soundPool에서 play 메서드를 사용하는 경우 사운드를 재생하기위한 별도의 스레드가 자동으로 만들어 지나요? 특히 무한 루프로 반복하는 경우에 특히 그렇습니다. 또는 UI 스레드를 사용하여 사운드를 재생합니까?Soundpool 재생 방법이 자체 스레드를 만드나요?
내 응용 프로그램이 무작위로 충돌하기 때문에 묻습니다. UI 스레드를 끝내기 때문입니다. 내 soundPool 루프를 자체 프로세스가있는 서비스에 배치하는 것을 고려합니다.
soundPool에서 play 메서드를 사용하는 경우 사운드를 재생하기위한 별도의 스레드가 자동으로 만들어 지나요? 특히 무한 루프로 반복하는 경우에 특히 그렇습니다. 또는 UI 스레드를 사용하여 사운드를 재생합니까?Soundpool 재생 방법이 자체 스레드를 만드나요?
내 응용 프로그램이 무작위로 충돌하기 때문에 묻습니다. UI 스레드를 끝내기 때문입니다. 내 soundPool 루프를 자체 프로세스가있는 서비스에 배치하는 것을 고려합니다.
SoundPool은 구성 방법에 따라 여러 개의 스레드를 만들 수 있습니다. 앱이 실행되는 동안 나타나는 스레드 세트를 확인하십시오 (adb shell ps -t
또는 DDMS의 스레드보기 사용). "SoundPool", "SoundPoolThread"및 "AudioTrack"이 표시됩니다.
"오버플로"스레드는 실제로 충돌 원인이 아닙니다. 크래시 세부 정보가 포함 된 여기에 새로운 질문을 게시 할 수 있습니다 (특히 logcat 출력). 어쩌면 누군가가 왜 실패하고 있는지 알아낼 수 있습니다.
죄송합니다. 멍청한 질문이 있으면 어디에서이 명령을 입력해야합니까? 나는 logcat을 작동시킬 수만 있다면 크래시 문제를 스스로 해결할 수 있다고 생각합니다.하지만 그것은 별개의 문제입니다 :)이 질문은 사운드 풀을 좀더 이해하고, 고맙습니다. :) –
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