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)
}
}
클릭 리스너에서 사운드가 필요하거나 알림이 왔을 때 사용하면 좋을것 같습니다.
'안드로이드' 카테고리의 다른 글
LayoutParams 설정 시 DP 단위로 바꾸기 (0) | 2022.01.25 |
---|---|
Kotlin 기본 문법 정리 (0) | 2022.01.21 |
ViewFlipper 사용법(feat.Glide) (0) | 2022.01.12 |
[Android/Kotlin ]Exoplayer 동적 playlist 만들기 (0) | 2022.01.10 |
Room 사용법 . (Room) (0) | 2022.01.06 |