2012-12-19 2 views
3

나는 인터넷에 관한 정보를 찾을 수 없기 때문에이 질문을하고 있습니다.빛나다 화재 : MediaPlayer : 여러 소리를 재생할 때 이상한 소리가 들림

문제는 여러 개의 MediaPlayers를 사용하여 mp3 샘플을 재생하는 피아노 앱이 있다는 것입니다. 이것은 빠른 응답을 얻고 사운드 풀 같은 모든 것을 메모리에로드 할 필요가 없거나 기본 코드 신디를 사용하는 유일한 방법입니다.

정상적으로 작동하며 정상적인 Android 기기에는 아무런 문제가 없습니다. 그러나, Amazon Kindle Fire (초판)에서는 몇 개의 키를 연주 한 후에 이상한 소리가납니다. MediaPlayer 네이티브 구현에는 어떻게 든 버그가있는 것 같습니다. 나는 실제 오류를 내지는 않지만 소리는 차단되거나 이상한 랜더링 잡음을 왜곡시킵니다. 이 과정을 통해 내 사용자는 만족스럽지 않으며 낮은 등급의 앱을 남겨 둡니다.

.ogg 샘플을 사용하여 렌더링 엔진을 전환 해 보았습니다. 이것들은 더 이상 이상한 소리가 아니지만 이상한 소리는 아닙니다. 그러나 그것들 역시 차단되어 아주 좋은 대체물이 아닙니다.

내가 발견 한 유일한 단서는 잘못된 데이터에 관한 오류 메시지입니다. 내가 그 문제를 해결할 수 있는지 알아 보겠다. 그러나 나는 그 문제와 관련이 없다.

누구나 Kindle Fire (또는 다른 플랫폼)에서 비슷한 문제가 발생 했습니까?

업데이트 때때로 잘못된 데이터에 대한 이상한 오류가 실제로 발생하는 것 같습니다. AssetFileDescriptors를 사용하여 원시 리소스 파일을로드하고 있습니다. 이것은 정확히 MediaPlayer.create(R.raw.mp3file)과 동일한 내용입니다. 방금 sdcard의 샘플로 테스트했는데 이상한 오디오 문제가 발생하지 않습니다. 그래서 저는 이것을 실제로 풀 수있을 것이라고 생각합니다. :)

+0

아마도 오디오 파일의 끝에 "dead air"를 추가하여 소리가 잘리지 않을 수 있습니다. 확실히 이상적인 솔루션은 아니지만 특정 장치에 대한 제한 사항을 발견 한 것으로 보입니다.이를 완화하려는 한 가지 방법이 될 것입니다. – FoamyGuy

+0

흥미로운 아이디어. 그러나 사용자가 키를 만지면 샘플이 음소거됩니다. (비록 앱이 그것을 멈추기 전에 500ms가 걸리도록 고안되었지만). – Peterdk

답변

0

글쎄, 해결책은 매우 간단합니다. 그리고 나는 또한 그것이 왜 그렇게 많이 발생하지 않는지를 이해합니다.

MediaPlayer.create(R.raw.resid) 소스를 완전히 복사하지 못했습니다. 매번 사용 후 AssetFileDescriptor을 닫는 것을 잊어 버리고 그냥 재사용했습니다. 여하튼 그것은 좋은 연습이 아니며, 그것을 닫는 것으로 전환하면 그것을 고쳤습니다!