getMimeTypeFromExtension记录

Android  小知识  2024年4月17日 pm6:45发布7个月前更新 城堡大人
128 0 0

前言

Android 13的MediaProvider中有涉及到getMimeTypeFromExtension()的使用,主要是获取文件的MimeType属性。

记录于此,方便自己差异。

下面代码来自MediaProvider

正文

获取mimeType

//获取文件后缀扩展
String extension = extractFileExtension("/sdcard/91es.m4a");
//根据后缀进行获取mimeType
if (null != extension) {
    String mimeType =   MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase(Locale.ROOT));
}
  1. extractFileExtension()方法是获取文件后缀

  2. getMimeTypeFromExtension()根据文件后缀获取文件mimeType

extractFileExtension
public String extractFileExtension(String data) {
    if (data == null) return null;
    data = extractDisplayName(data);
    int lastDot = -1;
    if (null != data) {
        lastDot = data.lastIndexOf('.');
    }
    if (lastDot == -1) {
        return null;
    } else {
        return data.substring(lastDot + 1);
    }
}
extractDisplayName()
public String extractDisplayName(String data) {
    if (data == null) return null;
    if (data.indexOf('/') == -1) {
        return data;
    }
    if (data.endsWith("/")) {
        data = data.substring(0, data.length() - 1);
    }
    return data.substring(data.lastIndexOf('/') + 1);
}

测试

extension : mp4
mimeType : video/mp4

extension : mpeg
mimeType : video/mpeg

extension : ra
mimeType : audio/x-pn-realaudio

extension : wma
mimeType : audio/x-ms-wma

extension : wav
mimeType : audio/x-wav

extension : ape
mimeType : null

extension : m4a
mimeType : audio/mpeg

extension : txt
mimeType : text/plain

代码

整合一下,显示自己模块中使用的代码

隐藏内容!
评论可看后才能查看!

参考文章

  1. 《MediaProvider源码》

 历史上的今天

  1. 2020: 铁凝:一千张糖纸(0条评论)
  2. 2019: bat脚本命令简介(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Kotlin面对对象简介

前言简单介绍一下Kotlin面对对象简介。记录一下,方便自己查阅。正文类类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。Kotlin中所有类都继承Any类,它是所有类的父类,如果一个类在声明时没有指定父类,则默认父类为Any类无参数和有参...

李娟:属于我的马

有一个人欠了我家很多钱,现在却死了。按当地穆斯林的礼性,不还清生前的债务是不可入葬的。葬礼上,阿訇会询问死者亲属:“此人生前亏欠过别人的财物吗?”得到否定的回答后才会继续为死者念经。但他的家人实在拿不出钱来偿还,情急之下,只好把自家的一匹马牵来见我妈,要求抵债。我妈很为难,打电话同我商量该怎么办...

720P、1080P、2K、4K的简介

前言简单记录一下720P(高清)、1080i 、1080P(全高清)、2K、4K相关内容。正文一、分辨率后缀的含义PP, 是Progressive的缩写, 表示逐行扫描720P,1080P等,表示的是“视频像素的总行数”,比如,720P表示视频有720行的像素,而1080P则表示视频总共...

刘明:从一幅寿桃走近一位画家

源于一次写生活动,有幸认识了一位画家,他就是长安画院的周西省大哥。称呼他为大哥,有一种亲和力是源于他的一件小事,感动了我。那就是有缘去了一趟我的老家,他让我的父母坐下,他用手机播放一段我做的视频,让他们看,并说:“老人家,你们看看,这就是您的儿子拍摄的作品。”人与人之间相遇相识有缘是奇妙的,这种...

Android取消和开启提示音

前言如果系统设置[声音]选项中关闭了[触摸提示音],则所有的View都没有提示音。开启系统设置[触摸提示音]基础上,View或ViewGroup设置setOnTouchListener()或者setOnLongClickListener()都是没有提示音的。开启系统设置[触摸提示音]基础上...

CountDownTimer音量值淡入淡出

前言有时候播放开始播放和暂停时,需要做一个淡入淡出的效果,要不然急速暂停或播放,容易出现尖锐的杂音。正文显示对MediaPlayer播放和暂停时音量淡入和淡出代码片段。隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读