본문 바로가기

안드로이드

SoundPool 사용법

728x90

초초초 간단한 soundPool 사용법을 적어보겠습니다 . 

 

이번에는 Java 언어로 만들겠습니다 . 

 

Layout 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:text="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

</LinearLayout>

 

이제 자신이 원하는 효과음을 넣어야겠죠 ?

 

res에 new directory 를 raw 로 만들어주세요 

거기에 원하는 효과음을 넣어주시면 됩니다. 

 

 

MainActivity 

public class MainActivity extends AppCompatActivity {
    SoundPool mSoundPool;
    int mSoundId;
    Button button ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = findViewById(R.id.button);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mSoundPool = new SoundPool.Builder()
                    .setMaxStreams(1)
                    .build();
        } else {
            mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 1);
        }

		//R.raw.sound가 효과음입니다. 
        mSoundId = mSoundPool.load(getApplicationContext(), R.raw.sound, 1);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            //파라미터의 설정사항은 공부해보시길^^
                mSoundPool.play(mSoundId, 1, 1, 1, 0, 1);
            }
        });

    }

}

 

 

 

Kotlin 

 


class MainActivity : AppCompatActivity() {
    private lateinit var mSoundPool : SoundPool
    private var mSoundId : Int? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
		setOrderAlarm()
        
        btn.setOnClickListener {
        	playOrderAlarm()
        }
    }
        
    fun playOrderAlarm()  {
        mSoundPool.play(mSoundId!!,1f,1f,0,0,1f)
    }

    fun setOrderAlarm()  {
        mSoundPool = SoundPool.Builder()
            .setMaxStreams(1)
            .build()
        mSoundId= mSoundPool.load(appContext, R.raw.alarm_sound, 1)
    }

}

 

 

클릭 리스너에서 사운드가 필요하거나 알림이 왔을 때 사용하면 좋을것 같습니다.