버튼을 클릭하거나 특정 뷰를 클릭했을때 효과음을 내고 싶다면 아래와 같이 하면 됩니다.
첫번째로 스튜디오에 raw폴더를 만들어 원하는 사운드를 복사합니다.
위와 같이 파일을 추가했다면 액티비티에 소스를 아래와 같이 추가해줍니다.
private SoundPool soundPool;
int soundPlay;
soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
soundPlay = soundPool.load(this, R.raw.alter, 1);
soundPool.play(soundPlay, 1f, 1f, 0, 0, 1f);
soundPool = new SoundPool(maxStreams, streamType, srcQuality);
maxStreams = 동시 최대 재생 갯수
streamType = 재생타입 ( 보통 AudioManager.STREAM_MUSIC 쓴다고 합니다 )
srcQuality = 재생 품질 - 기본값 0
soundPlay = soundPool.load(this, R.raw.alter, 1);
재생하고자 하는 파일을 가져옵니다. 1은 우선순위( priority )입니다.
soundPool.play(soundPlay, 1f, 1f, 0, 0, 1f);
public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
soundPool.play(soundPlay, 1f, 1f, 0, 0, 1f);
soundPool.play(재생시킬ID, 왼쪽볼륨, 오른쪽볼륨, 우선순위, 반복재생, 재생속도);
왼쪽, 오른쪽 볼륨 - 0.0f ~ 1.0f
우선순위 - 0이 가장 낮음
반복재생 - 0으로 설정시 한번 재생 / -1로 설정시 무한재생
재생속도 - 1f가 일반적인 속도이고, 범위는 0.5 ~ 2.0 | 2f로 설정시 2배속
오디오매니저에 대한 자세한 내용은
https://developer.android.com/reference/android/media/AudioManager
위 페이지를 참조하시고 사운드풀에 관한 내용은 아래페이지를 참조하세요
https://developer.android.com/reference/android/media/SoundPool
다음으로 기본 터치 효과음 제거방법입니다.
보통 터치하면 기본 효과음이 나는데요
소스에서 설정할 때
Button 버튼 = findViewById(R.id.버튼아이디);
버튼.setSoundEffectsEnabled(false);
Button 버튼 = findViewById(R.id.버튼아이디);
버튼.setSoundEffectsEnabled(false);
xml 디자인탭에서 설정할 때
SoundEffectsEnabled false
xml 텍스트탭에서 설정할 때
<ImageView
android:id="@+id/imageView_backGround"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:onClick="onClickGame"
android:soundEffectsEnabled="false" />
<ImageView
android:soundEffectsEnabled="false" />
android:soundEffectsEnabled를 추가해주면 됩니다.
'안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 버튼을 누르면 이동(인텐트) 2가지 방법 (0) | 2019.10.31 |
---|---|
안드로이드 스튜디오 간단한 이미지뷰 활용방법 2가지 (0) | 2019.10.31 |
안드로이드 스튜디오 타이머 이용하기 ( 시간마다 실행 ) (0) | 2019.10.31 |
안드로이드 스튜디오 버튼 여러개 한꺼번에 처리하기 (onClick 메서드 줄이기) (0) | 2019.10.31 |
안드로이드 스튜디오 SharedPreferences를 이용한 저장 / 불러오기 (0) | 2019.10.30 |