[英]Check 3gp file is audio/video in Android?
我正在嘗試使用以下代碼獲取視頻文件的 mimetype。
問題:我有一個保存為音頻的文件,但它的 mimetype 是 video/3gpp 並且它也在作為音頻播放。 . 如何檢測這種是音頻但 mimetype 是 video/3gpp 詳細信息的文件,以便我可以將其從列表中排除。
fun getFileMimeType(url: String): String {
var type: String = ""
try {
if (url.lastIndexOf(".") != -1) {
val ext: String = url.substring(url.lastIndexOf(".") + 1)
val mime = MimeTypeMap.getSingleton()
type = mime.getMimeTypeFromExtension(ext)!!
}
} catch (e: Exception) {
}
return type
}
假設這是一個本地文件,您可以使用 MediaMetadataRetriever 來獲取有關媒體文件的元數據信息。
具體來說,您可以檢查 METADATA_KEY_HAS_VIDEO 是否設置為 true。
Kotlin 中的一個例子:
val metadataRetriever = MediaMetadataRetriever()
metadataRetriever.setDataSource(context, Uri.fromFile(your3GPPFile))
val hasVideoKey = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO)
if (hasVideoKey == "yes") {
//Include in your list or do whatever work
//you need here
}
您還可以使用 ExoPlayer 並加載文件,然后使用
player.getCurrentTrackGroups()
這將返回一個軌道數組,您可以遍歷這些軌道並解析格式以檢查它們是否包含視頻軌道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.