본문 바로가기
Android

[Android] [MediaMetadataRetriever]영상 데이터가 존재하는지 확인하는 법

by 준그래머 2023. 10. 20.
반응형

시작

MP4 파일의 경우 영상 섬네일이 없이 오디오만 녹음된 경우가 있다. 때문에 영상 아이템이 아닌 음악 아이템으로 첨부해야 하는 경우가 있어 영상 데이터가 존재하는지 확인해야 했다.

 

MediaMetadataRetriever 를 사용

MediaMetadataRetriever를 사용하면 Media 파일의 몇 가지 정보들을 알아 올 수 있다.

fun isVideoFile(context: Context, uri: Uri):Boolean{
    try{
        val retriever = MediaMetadataRetriever()
        retriever.setDataSource(context, uri)
        val hasVideo = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO) // 영상인지
        return !(hasVideo==null || hasVideo == "no")
    }
    catch (e: RuntimeException){
        logW(TAG, "isVideoFile", e)
        return false
    }
}

위 코드를 보면 MediaMetadataRetriever에 Uri를 전달하여 영상 데이터를 갖고 있는지 확인할 수 있다.

int If this key exists the media contains video content.
METADATA_KEY_HAS_VIDEO

 

MediaMetadataRetriever를 잘만 이용한다면 더 많은 처리를 할 수 있을 것 같아 다른 부분에서도 이용하면 좋을 것 같다.

 

참조

 

MediaMetadataRetriever  |  Android Developers

 

developer.android.com

 

반응형