진동
진동을 위한 인스턴스 생성
val vib = getSystemServive (Context.VIBRATOR_SERVICE) as Vibrator
안드로이드 누가 버전 (N_MR1) 이후
vib.vibrate(VibrationEffect.createOneShot(시간, 효과))
안드로이드 누가 버전 까지
vib.vibrate(밀리초 단위의 정수)
진동은 권한이 있어야 수행됩니다.
권한 설정은 AndroidManifest.xml 파일의 application 태그 외부에서 설정
사운드 재생
시스템이 제공하는 사운드 - RingTone
음악 파일 재생 MediaPlayer 클래스
사운드 파일이나 동영상 파일의 경우는 사이즈가 커서 리소스로 관리하기에는 부담이 됩니다.
이런 파일들은 assets라는 디렉토리에 저장해서 관리
리소스는 애플리케이션이 시작 될 때 메모리에 로드가 되는 자원이고 assets 는 사용 할 때 메모리에 로드가 되는 자원입니다.
<uses-permission android:name="android.permission.VIBRATE" />
package kr.co.tjoeun.app1028
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 androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.VibrationEffect
import android.os.Vibrator
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn1.setOnClickListener(View.OnClickListener {
// 진동 객체를 생성
val vib = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
// 누가 버전 이후
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
vib.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE))
} else {
vib.vibrate(1000)
}
})
btn2.setOnClickListener(View.OnClickListener {
// 시스템 사운드 재생
val notification: Uri = RingtoneManager.getDefaultUri(
RingtoneManager.TYPE_ALARM)
val ringtone = RingtoneManager.getRingtone(this, notification)
ringtone.play()
})
btn3.setOnClickListener(View.OnClickListener {
val player:MediaPlayer
= MediaPlayer.create(this, R.raw.buttoneffect)
player.start()
})
}
}
'안드로이드' 카테고리의 다른 글
안드로이드 : 목록 대화 상자 (0) | 2020.10.28 |
---|---|
안드로이드 : 대화 상자 (0) | 2020.10.28 |
안드로이드 : 버전 별 다른 코드 작성 (0) | 2020.10.27 |
안드로이드 : GUI 시스템에서 UI 갱신과 Logcat (0) | 2020.10.27 |
안드로이드 : 레이아웃과 이벤트 처리 (0) | 2020.10.27 |