본문 바로가기
안드로이드

안드로이드 스튜디오 버튼클릭 효과음 + 기본 효과음 제거 2가지 방법

by 아스키의 공부방 2019. 10. 31.
728x90
반응형

버튼을 클릭하거나 특정 뷰를 클릭했을때 효과음을 내고 싶다면 아래와 같이 하면 됩니다.

 

첫번째로 스튜디오에 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

 

AudioManager  |  Android Developers

AudioManager public class AudioManager extends Object java.lang.Object    ↳ android.media.AudioManager AudioManager provides access to volume and ringer mode control. Summary Nested classes class AudioManager.AudioPlaybackCallback Interface for receiving u

developer.android.com

위 페이지를 참조하시고 사운드풀에 관한 내용은 아래페이지를 참조하세요

https://developer.android.com/reference/android/media/SoundPool

 

SoundPool  |  Android Developers

SoundPool public class SoundPool extends Object java.lang.Object    ↳ android.media.SoundPool The SoundPool class manages and plays audio resources for applications. A SoundPool is a collection of samples that can be loaded into memory from a resource insi

developer.android.com

 

 

다음으로 기본 터치 효과음 제거방법입니다.

 

보통 터치하면 기본 효과음이 나는데요

소스에서 설정할 때

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를 추가해주면 됩니다.

728x90
반응형