반응형
안드로이드에서 MediaPlayer를 사용해서 프로젝트 리소스 폴더 내 음악파일을 재생하는 예제이다.
지원되는 음악 파일은 mp3, wav 형식 등이고 더 자세한 형식을 아래 링크에서 확인 가능하다.
developer.android.com/guide/topics/media/media-formats?authuser=1&hl=ko
1. raw 파일 생성
res 폴더 안에 raw 파일을 생성한다.
res 폴더에서 마우스 우클릭 > New > Android Resource Directory
2. Resource type으로 raw 선택 후 OK를 선택한다.
raw 폴더가 생성된다.
3. raw 폴더 안에 재생할 음악 파일을 추가한다.
예제에서는 test.mp3 파일을 사용한다.
4. xml 레이아웃에 버튼을 추가한다.
버튼 text는 PLAY, onClick 이벤트는 onClick으로 지정한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY"
android:onClick="onClick"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
5. 메인 액티비티를 작성한다.
public class MainActivity extends AppCompatActivity {
Button mBtnPlay;
MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnPlay = findViewById(R.id.btn);
}
// PLAY 버튼 이벤트
public void onClick(View view) {
// MediaPlayer 없으면 초기화 진행
if (mMediaPlayer == null) {
mMediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.test); // 출력할 음악 파일 세팅
// 음악 파일 재생이 완료됐을 때 호출될 콜백 세팅
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
// null 처리 및 버튼 텍스트 PLAY로 변경
mMediaPlayer = null;
mBtnPlay.setText("PLAY");
}
});
}
isPlaying();
}
// 플레이 체크
private void isPlaying() {
if (mMediaPlayer.isPlaying()) { // 음악 파일 플레이중인 상태
// 음악 파일 재생 멈추고 버튼 텍스트 PLAY로 변경
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.release();
mMediaPlayer = null;
mBtnPlay.setText("PLAY");
} else { // 음악 파일 재생중이 아닌 상태
// 음악 파일 재생하고 버튼 텍스트 STOP으로 변경
mMediaPlayer.start();
mBtnPlay.setText("STOP");
}
}
}
반응형
'IT > 안드로이드+JAVA' 카테고리의 다른 글
[안드로이드] SHA256 해시 알고리즘 예제 (0) | 2020.12.08 |
---|---|
[안드로이드] 앱 버전 비교 예제 (버전 표기법, 규칙) (0) | 2020.12.02 |
[안드로이드] Find Security Bugs 사용 방법 (소스코드 정적 분석 도구) (0) | 2020.11.16 |
[Android] HTTPS 통신 시 사설인증서 사용 방법 (SSLHandshakeException, SSLPeerUnverifiedException) (4) | 2020.11.07 |
[안드로이드] 타 앱 호출하기 (Custom URL Scheme) (0) | 2020.10.25 |