HTC Wildfire S에서 소리와 관련하여 자주 발생하는 충돌 문제 (유사하지만 자주 발생하지 않지만 Thunderbolt와 같은 다른 장치에서 충돌이 발생 함). 나는 그것을 해결하기 위해 다양한 일을 시도했거나 적어도 문제가 운이없는 것이 무엇인지에 대해 더 많이 배웠다.Wildfire S에서 사운드 관련 충돌이 발생했습니다.
소리와 관련된 문제인지 확신합니다. SoundPool.play()
을 주석 처리하면 문제가 사라집니다. 나는 SoundPool에 대해 특정 적이 있다고 생각하지 않는다. 왜냐하면 나는 그 대신에 충돌을 줄이지 않았던 OpenSL ES을 사용하려고 시도했기 때문이다.
나는 또한이 제목에서만 발생하기 때문에 더 낮은 수준의 사운드와 반드시 문제가된다는 것을 받아들이는 데 어려움이 있습니다. 같은 사운드 코드로 제작 된 다른 게임에서는 (내가 할 수있는 한) 불가능합니다. 또한 나는 다른 사람들이 같은 문제를 겪는다는 사실을 거의 발견하지 못했다.
그러나이 점 (여러 개의 동시 사운드, 빈번한 사운드, 사운드 포맷)으로 이어질 것이라고 생각할 수있는 게임 관련 사항은 문제가되지 않습니다 (한 번에 하나의 사운드로 축소되었습니다. WAV로, 더 작은 파일, OGG, 다른 소리에서 최근에 일어나는 소리를 막지 않고 무시하십시오).
우리의 공통 코드는 충돌이 Cocos2dxSound 된 .java* 에 조정 증가한다는 cocos2dx 위에 구축, 그리고 (내가 전적으로 확신하지 오전 있지만)이 나타납니다 *는 것 만 잠 있도록 메인 스레드는 SoundPool.play(...)
returned 0
이후 처음입니다.
또한 문제가 될 수있는 경우 APK에서 가져온 일부 소리가 설치 후 다운로드됩니다.
모든 아이디어 나 제안 사항을 매우 높이 평가합니다. 이것은 그것이 가져야하는 것보다 더 오래 걸렸습니다.
기기 관련 문제인지 사운드 문제인지 확인 했습니까? –
내가 제안 할 수있는 것은 cocos2dxMusic과 비슷한 MediaPlayer 구현을 사용하여 전체 cocos2dxSound.java를 다시 작성하는 것입니다. 문제가 해결되지만 1-2 일이 걸립니다. 그것이 내가 한 일이며 순차적으로 사운드를 재생하는 등의 이점을 얻을 수 있습니다. 또는 cocos2d-x 팀이 문제를 해결할 때까지 잠시 기다려도되지만 그렇게 빠르지는 않을 것입니다. –
MediaPlayer에 대한 내 관심사가 오히려 리소스 집약적인데, 특히 동시 사운드의 경우 더욱 그렇습니다. cocos2d-x 팀은 실제로 OpenSL ES를 사용해 보도록 제안한 팀입니다. – ajtc