안드로이드 개발자의 창고
[44일차 Android] Raw 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 Raw
- 가공되지 않은 원천 데이터
- 사운드나 동영상, 사진 등을 데이터의 용량을 줄이기 위해 압축을 하게 되는데 이러한 가공을 거치지 않은 순수 데이터들을 raw 데이터라고 부른다.
- 안드로이드에서는 각종 데이터 파일이나 동영상, 사운드 등의 데이터를 사용할 때 주로 사용한다.
raw 폴더
- 실행 중 다운받거나 생성된 데이터 파일은 내부 저장소나 외부저장소에 저장해 두었다가 필요할 때 읽어오면 된다.
- 만약 데이터가 저장된 파일을 애플리케이션 내부에 포함 시키겠다면 raw 폴더에 저장하면 된다.
- raw 폴더에 저장된 파일은 스트림을 손쉽게 추출할 수 있다.
예제 코드
raw 파일 생성 후 저장된 파일들
text 파일 읽어오기
button.setOnClickListener {
// raw 파일의 data.txt 읽어오기
val inputStream = resources.openRawResource(R.raw.data)
val inputStreamReader = InputStreamReader(inputStream,"UTF-8")
val bufferedReader = BufferedReader(inputStreamReader)
var str:String? = null
val stringBuffer = StringBuffer()
do{
str = bufferedReader.readLine()
// 읽어온 파일의 데이터가 null이 아니면 stringBuffer에 추가
if (str != null){
stringBuffer.append("${str}\n")
}
// 읽어온 파일의 데이터가 null일 때까지 반복
}while (str != null)
bufferedReader.close()
// 읽어온 데이터를 textView에 반영
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로 만들어 button2 클릭 시 재생이 되도록 한다.
mediaPlayer = null
}
}
동영상 재생 및 정지
button4.setOnClickListener {
// videoView가 재생 중이 아니라면
if (videoView.isPlaying == false){
// 영상 파일의 경로를 가져온다.
val uri = Uri.parse("android.resource://${packageName}/raw/video")
// 영상 주소를 설정한다.
videoView.setVideoURI(uri)
// 재생한다.
videoView.start()
}
}
button5.setOnClickListener {
// videoView가 재생 중이라면
if (videoView.isPlaying == true){
// 영상 재생을 중지한다.
videoView.stopPlayback()
}
}
'Computer > Android' 카테고리의 다른 글
[44일차 Android] SQLiteDatabase (0) | 2023.07.10 |
---|---|
[44일차 Android] assets (0) | 2023.07.10 |
[43일차 Android] 파일 입출력 (0) | 2023.07.10 |
[43일차 Android] Application Class (0) | 2023.07.06 |
[42일차 Android] Code를 이용한 View 생성 (0) | 2023.07.06 |