본문 바로가기
Android App

[Android Studio / Java] TextView에 소리 넣는 방법

by Henry Cho 2022. 4. 26.
728x90

TextView에 소리 넣는 방법 


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Button처럼 사용하는 TextView

Android Studio에서 버튼을 눌렀을 때 소리가 나오게끔 하기 위해서는 버튼과 오디오 파일을 연결해주면 된다.

TextView도 버튼 기능은 아니지만 버튼처럼 특정 텍스트를 눌러서 원하는 소리가 나오게끔 지정할 수 있다.

한마디로 텍스트로된 오디오 버튼인 셈이다.

 HOOAI = (TextView) findViewById(R.id.tv_HOOAI);

우선은 TextView를 선언해준다.

HOOAI라는 TextView를 선언해주고. xml 파일에서 어떤 id와 연결을 해줄 것인지도 정의해준다.

여기서는 tv_HOOAI라는 ID를 가진 TextView와 연결이 되어 있다는 걸 알 수 있다.


# Raw

안드로이드 스튜디오에서는 오디오 파일을 Raw 폴더 또는 디렉터리에 저장한다.

따라서 기존에 Raw 폴더가 리소스 폴더 안에 있으면 상관이 없지만 오디오 파일을 다루지 않았다면 우선적으로 Raw 폴더 또는 디렉터리를 만들어준다.

임의로 디렉토리를 만들어서 지정해줘도 되지만

[res] -> [New] -> [Android Resource Directory] -> [Raw]를 통해 바로 Raw 디렉터리 생성이 가능하다.

안드로이드 리소스 다이렉토리에는 종류별로 다른 디렉토리가 있으니 원하는 디렉터리를 찾아서 생성해주면 된다.

여기서는 오디오 파일을 저장해둘 디렉토리가 필요하니 Raw를 사용하면 된다.

또한 오디오 파일을 저장하기 전에 .mp3 파일이 아닌 경우에는 오디오 파일 형식 변환을 해준 다음에 Raw 디렉터리에 저장하고 코드에서 사용하는 것을 추천한다.

오디오 파일 형식이 맞지 않을 경우 오류가 나거나 재생이 안될 수도 있기 때문이다.

final MediaPlayer mp = MediaPlayer.create(this, R.raw.mp_HOOAI);

위의 예제를 살펴보면 mp_HOOAI라는 오디오 파일을 불러와서 사용할 것이라는 걸 선언해주는 문장이다.

mp라는 MediaPlayer 값을 선언해주고 create을 통해서 특정 오디오 파일을 입혀준다.


# Example Codes

public class MainActivity extends AppCompatActivity {
private TextView HOOAI;
 
 HOOAI = (TextView) findViewById(R.id.tv_HOOAI);
        final MediaPlayer mp = MediaPlayer.create(this, R.raw.mp_HOOAI);
        HOOAI.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mp.start();
            }
        });

마지막으로 setonClickListener을 통해서 HOOAI라는 텍스트뷰를 클릭했을 때 발생하는 기능을 선언한다.

여기서는 TextView를 클릭했을때 mp.start()를 통해 특정 미디어 파일이 재생된다.

여기까지 끝이 났다면 .xml 파일에서 tv_HOOAI라는 아이디를 가진 TextView를 만들어주면 TextView로 클릭하여 오디오 파일을 재생할 수 있는 기능이 앱에 적용이 된다.


 

728x90

댓글