Archives
Recent Posts
«   2024/10   »
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
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[44일차 Android] Raw 본문

Computer/Android

[44일차 Android] Raw

Wise-99 2023. 7. 10. 18:24

 

 

 

출처 : 안드로이드 앱스쿨 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