개발/Android

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

준그래머 2023. 10. 20. 09:40
반응형

시작

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