티스토리 뷰
알림을 위해 진동과 소리를 제어하는 것과 음악 파일을 제어하는 앱을 구현해보겠습니다.
진동을 누르면 진동이 울리고
소리를 누르면 소리가 울리고
음악 재생을 누르면 음악이 재생되고
음악 정지를 누르면 음악이 멈추는데 이때 음악 재생을 누르면 처음부터 재생되고
음악 일시정지는 누르면 음악이 일시정지되어 음악 재생을 누르면 이어서 재생됩니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"
android:text="진동" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"
android:text="소리" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"
android:text="음악 재생" />
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"
android:text="음악 정지" />
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"
android:text="음악 일시정지" />
</LinearLayout>
xml은 리니어레이아웃을 사용하여 버튼을 5개 만들었습니다.
진동을 이용하기 위한 권한을 주고 음악 재생을 위해 음악 파일을 넣겠습니다.
<uses-permission android:name="android.permission.VIBRATE"/>
AndroidManifest.xml에 진동을 사용하기 위한 권한을 줍니다.
패키지명과 애플리케이션 사이에 배치하면 됩니다.
음악파일은 app> res> raw에 넣어두시면 됩니다.
raw폴더가 없으면 res를 마우스 우클릭하고 New에 Resource Directory를 선택 후 Resource type를 raw로 바꾼 후 OK를 눌러주시면 됩니다.
package com.ehsehsl.osz;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
Button button2 = findViewById(R.id.button2);
Button button3 = findViewById(R.id.button3);
Button button4 = findViewById(R.id.button4);
Button button5 = findViewById(R.id.button5);
setPlayer(); // 음악 설정
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { // 진동
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // 진동을 울리기 위한
if (Build.VERSION.SDK_INT >= 26) { // 안드로이드 버전에 따른 조건
vibrator.vibrate(VibrationEffect.createOneShot(1000, 100)); // 지속시간, 크기
} else {
vibrator.vibrate(1000); // 지속시간
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { // 소리
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // 소리를 울리기 위한(TYPE_NOTIFICATION를 다른 거로 바꾸면 설정한 벨소리 등 소리 울리게 가능)
Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), uri);
ringtone.play();
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start(); // 재생 시작
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop(); // 음악 정지
setPlayer(); // 정지하면 재생눌러도 재생이 안되기에 다시 설정하기
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (player.isPlaying()) { // 재생중인지 체크
player.pause(); // 일시정지
}else{
player.start(); // 시작
}
}
});
}
public void setPlayer() {
player = MediaPlayer.create(getApplicationContext(), R.raw.music); // 음악 설정
player.setLooping(true); // 반복 설정
}
}
진동은 안드로이드 버전에 따라 작동되는게 달라 조건문을 넣어줬습니다.
소리는 코드를 따라하면 알림 소리가 들리는데 벨소리가 들리게 하는 등 다른 소리가 들리게 할 수도 있습니다.
음악은 재생, 정지, 일시정지(재시작)를 구현하기 위해 3개로 나눴습니다.
앱을 처음 시작하면 setPlayer함수를 호출해 넣어둔 음악파일을 받아오고 반복되게 세팅합니다.
음악 재생을 누르면 start를 통해 음악이 재생됩니다.
음악 정지를 누르면 stop를 통해 음악이 정지됩니다.
이렇게 끝나면 음악이 다시 재생이 되지 않기에 setPlayer을 호출합니다.
이후 재생하면 음악이 처음부터 재생됩니다.
일시정지는 조건문을 통해 음악이 재생중이면 일시 정지하고 재생 중이 아니면 재생되게 됩니다.
'안드로이드 네이티브' 카테고리의 다른 글
안드로이드 뒤로 가기 버튼 두 번 눌러야 꺼지도록 하기 (0) | 2020.11.04 |
---|---|
안드로이드 버튼 누르고 있으면 숫자 올라가거나 내려가기 (0) | 2020.10.26 |
안드로이드 동영상 실행시키기 (앨범에서 선택, 웹에서 불러오기, 앱 내부 영상) (0) | 2020.10.01 |
안드로이드 앨범에서 사진 불러와 보여주고 내부저장소에 저장과 삭제하기 (0) | 2020.09.30 |
안드로이드 스레드(Thread) 사용하기 (0) | 2020.09.29 |
- Total
- Today
- Yesterday
- 안드로이드앱개발
- 오토핫키
- 플러터
- 구구단앱
- 구구단공부
- 구구단
- 자바스크립트
- 구구단어플
- 명언
- MouseMove
- 카카오봇
- 카카오톡
- 노래
- 안드로이드
- JS
- 안드로이드스튜디오
- 매크로
- 로또
- 안드로이드클라이언트
- 안드로이드앱
- 챗봇
- 채팅
- 자동답장
- loop
- 앱개발
- sendinput
- inputbox
- 코틀린
- 안드로이드네이티브
- Flutter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |