val inputStream = resources.openRawResource(R.raw.data1)
mp = MediaPlayer.create(this, R.raw.song)
mp?.start()
**VideoView**라는 View를 사용**VideoView**는 재생할 영상이 있는 파일의 경로를 직접 설정해야한다. val uri = Uri.parse("android.resource://${packageName}/raw/video")
videoView.setVideoURI(uri)
videoView.start()

raw 폴더를 만들고 data이름의 폴더 안에 위와 같이 선언
activityMainBinding.run{
button.setOnClickListener {
// raw 폴더에 있는 파일과 연결된 스트림을 추출
// res.raw에 있는 data라는 이름의 파일에 접근
// 확장자가 아니라 이름으로 확인
val inputStream = resources.openRawResource(R.raw.data)
val inputStreamReader = InputStreamReader(inputStream,"UTF-8")
val bufferdReader = BufferedReader(inputStreamReader)
// 널을 허용하는 함수로
var str:String? = null
val stringBuffer = StringBuffer()
do{
// 한줄을 읽어온다.
str = bufferdReader.readLine()
// 읽어온게 잇다면
if(str!=null){
// 쌓아준다.
stringBuffer.append("${str}\n")
}
}while(str!=null)
// 버퍼를 닫아준다.
bufferdReader.close()
textView.text = stringBuffer.toString()
}
}
var mediaPlayer: MediaPlayer? = null
// 사운드 재생하기
button2.setOnClickListener {
if(mediaPlayer == null){
// 사운드 재생 관리 객체를 생성한다.
mediaPlayer = MediaPlayer.create(this@MainActivity,R.raw.song)
// 재생한다.
mediaPlayer?.start()
}
}
// 사운드 중지하기
button3.setOnClickListener {
if(mediaPlayer != null){
// 사운드를 중지시킨다.
mediaPlayer?.stop()
mediaPlayer = null
}
}
// 영상 재생하기
button4.setOnClickListener {
// ViewView가 재생중이 아니라면
if(videoView.isPlaying == false){
// 영상 파일의 경로를 가져온다.
val uri = Uri.parse("android.resource://${packageName}/raw/video")
// 영상 주소를 설정한다.
videoView.setVideoURI(uri)
// 재생한다.
videoView.start()
}
}
// 영상 중지하기
button5.setOnClickListener {
// viewview가 재생중이라면
if(videoView.isPlaying == true){
// 영상 재생을 중지한다.
videoView.stopPlayback()
}
}

val inputStream = assets.open("text/data2.txt")
val face = Typeface.createFromAsset(assets, "font/font1.ttf")
textView.typeface = face