#안드로이드 Kotlin 오디오 파일 Duration 가져오기

2019. 11. 23. 01:15 개발 이야기/android

 

 

제가 만드는 앱에 Audio 파일을 다루는 일이 많아서 

 

Audio 파일의 Duration(파일 지속시간, 재생시간)을 가져오는 방법을 간단히 알아보겠습니다!

 

MediaMetadataRetriever를 이용해서 가져오는데요!

    fun getPlayTime(path: String?): Long? {
        Dlog.d("etDataSource(path) = "+path)
        val retriever = MediaMetadataRetriever()
        retriever.setDataSource(path)
        val time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)
        val timeInmillisec = java.lang.Long.parseLong(time)

        return timeInmillisec
    }

    fun getPlayTimeSec(path: String?): Long? {
        Dlog.d("etDataSource(path) = $path")
        val retriever = MediaMetadataRetriever()
        retriever.setDataSource(path)
        val time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)

        return TimeUnit.MILLISECONDS.toSeconds(java.lang.Long.parseLong(time))
    }

 

MediaMetadataRetriever.METADATA_KEY_DURATION을 통해서

String 형태의 Milli Second 기준 Duration을 가져오고

 

TimeUnit를 통해 Millisecond를 second로 변환해서 리턴하는 함수입니다!