마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SoundPool을 대신하는 코드가 있나요?

0 추천

현재 오픈GL2.0을활용하여 게임을 제작중인데요

SoundPool을 활용하여 효과음을 재생하고 있습니다. 그런데

SoundPool을 사용하고자 하면 아래와 같이 밑줄이 갑니다. 

mSoundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0);

물론 이렇게 밑줄이가더라도 효과음은 정상적으로 재생이 됩니다.

다만 폰에서 현재 제작하는 어플을 구동 시키면 오래된 코드를 쓰고 있으니

새로운 코드로 대체하여 쓰라는 식의 경고문 비슷한 것이 토스트 메시지로 뜹니다.

구글에 효과음 재생이라고 검색해보면 거의 모든분들이 SoundPool을 활용한 예시를 보여줍니다.

SoundPool을 대체하는 최신 코드가 존재하나요? 존재한다면

어떤 코드인지 알려주셨으면 합니다. ㅜㅜ

a12243 (560 포인트) 님이 2016년 8월 12일 질문

2개의 답변

0 추천
익명사용자 님이 2016년 8월 12일 답변
0 추천
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
    AudioAttributes audio = new AudioAttributes.Builder()
            . setContentType ( AudioAttributes . CONTENT_TYPE_MUSIC )
            . setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
            . setUsage(AudioAttributes.USAGE_GAME)
            .build();

   SoundPool.Builder().setAudioAttributes(audio).setMaxStreams(5).build();
    soundId = sp.load(mContext, R.raw.ding1, 1);
    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {

            //롤리팝버전부터
        }
    });
}
else
{
    sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
    soundId = sp.load(mContext, R.raw.ding1, 1);
    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
            
            // 롤리팝 이전버전
        }
    });
}
라테 (2,620 포인트) 님이 2016년 8월 12일 답변
...