Dev/Android

MediaActionSound() 사용시, 만나는 에러

healthyryu 2018. 3. 23. 20:14

new MediaActionSound().play(MediaActionSound.SHUTTER_CLICK);

여러번 사용하다보면 나오는 에러


MediaActionSound() 를 사용한 사운드 효과를 여러번 반복하다보면 사운드가 나오지 않고 Error 가 나온다.

E/AudioTrack: AudioFlinger could not create track, status: -12

E/SoundPool: Error creating AudioTrack


처음에는 MediaActionSound ms =new MediaActionSound(); 를 oncreate() 때 선언하고 ms.play(MediaActionSound.SHUTTER_CLICK)); 이렇게 사운드를 작동시켰다. 소리가 제대로 나지 않았다. 

두번째는 사운드가 필요한 부분에 매번 new MediaActionSound().play(MediaActionSound.SHUTTER_CLICK); 를 생성해서 소리를 냈다. 대략 10회 이상 넘어가면 소리가 나지 않았다.

검색을 해보니깐 메모리 이슈인것 같았다.

참고 :

- https://stackoverflow.com/a/43073175/3897810

- http://www.masterqna.com/android/55877/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%82%AC%EC%9A%B4%EB%93%9C%ED%92%80-%EC%86%8C%EB%A6%AC-%EC%9E%AC%EC%83%9D%EC%95%88%EB%82%98%EB%8A%94-%EB%AC%B8%EC%A0%9C%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4


그래서 MediaActionSound 를 클래스 변수로 만들고 액티비티가 생설될때 new 로 인스턴스를 생성하고 사운드가 필요한 부분에 ms.play() 를 하고 ms.release() 를 해주었다.




반응형