이번 시간에는 7강 데이터베이스의 두번째 강의인 '음악 재생하기' 리뷰입니다.
개념을 알아보면서 실습한 내용을 덧붙여 알아보도록 하겠습니다!
스마트폰에서 음악을 재생하는 일, 정말 많습니다.
음악 파일을 재생하기 위해서는 미디어 플레이어(MediaPlayer)를 사용하며 대상을 먼저 지정해야 합니다.
미디어플레이어를 이용하면 음악 파일의 재생은 물론 동영상 재생도 가능합니다.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
파일이 인터넷에 있다면 먼저 권한을 추가해줍니다.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="147dp"
android:layout_marginEnd="157dp"
android:text="재생" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginTop="49dp"
android:layout_marginEnd="77dp"
android:text="일시정지" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="-47dp"
android:layout_marginEnd="289dp"
android:layout_marginBottom="436dp"
android:text="재시작" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="166dp"
android:layout_marginBottom="361dp"
android:text="정지" />
</RelativeLayout>
MainActivity.java
package com.example.myaudioplayer;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public static String url = "http://techtown.org/download/a.mp3";
MediaPlayer player;
int position = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playAudio();
}
});
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pauseAudio();
}
});
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resumeAudio();
}
});
Button button4 = (Button) findViewById(R.id.button5);
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopAudio();
}
});
}
//오디오 재생
public void playAudio(){
try{
//사용자가 여러번 버튼을 클릭했을 경우를 대비하여 항상 초기화를 해줌
closePlayer();
player = new MediaPlayer();
player.setDataSource(url);
player.prepare();
player.start();
Toast.makeText(this, "재생 시작됨", Toast.LENGTH_LONG).show();
}catch (Exception e){
e.printStackTrace();
}
}
//오디오 일시중지
public void pauseAudio(){
if(player != null){
position = player.getCurrentPosition();
player.pause();
Toast.makeText(this, "일시정지됨", Toast.LENGTH_LONG).show();
}
}
//오디오 재시작
public void resumeAudio(){
if(player != null && player.isPlaying()){
player.seekTo(position);
player.start();
Toast.makeText(this, "재시작됨", Toast.LENGTH_LONG).show();
}
}
//오디오 중지
public void stopAudio(){
if(player != null && player.isPlaying()){
player.stop();
Toast.makeText(this, "중지됨", Toast.LENGTH_LONG).show();
}
}
//오디오 초기화
public void closePlayer(){
if(player != null){
player.release();
player = null;
}
}
}
'안드로이드' 카테고리의 다른 글
[Android] 7. 멀티미디어 - 사진 찍어 저장하기 (0) | 2019.09.04 |
---|---|
[Android] 6. 데이터베이스 - 인터넷 연결상태 확인하기 (0) | 2019.08.15 |
[Android] 6. 데이터베이스 - 헬퍼 사용하기 (0) | 2019.08.15 |
[Android] 6. 데이터베이스 - 데이터 추가하고 조회하기 (0) | 2019.08.10 |
[Android] 6. 데이터베이스 - 데이터베이스 이해하기 (0) | 2019.08.10 |
댓글