微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 11中不受支持的MIME类型

如何解决Android 11中不受支持的MIME类型

在Android 11中遇到以下问题,在11以下可以正常工作。在录制音频文件时。

这是一个例外。

java.lang.IllegalArgumentException: Unsupported MIME type "audio/wav"

代码

        File outFile = new File(outPath);
        long fileSize = outFile.length();

        ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DATA,outPath);
        values.put(MediaStore.MediaColumns.TITLE,title.toString());
        values.put(MediaStore.MediaColumns.SIZE,fileSize);
        values.put(MediaStore.MediaColumns.MIME_TYPE,"audio/wav");

        values.put(MediaStore.Audio.Media.ARTIST,getApplicationInfo().name);
        values.put(MediaStore.Audio.Media.DURATION,duration);

        values.put(MediaStore.Audio.Media.IS_MUSIC,true);

        Uri uri = MediaStore.Audio.Media.getContentUriForPath(outPath);
        final Uri newUri = getContentResolver().insert(uri,values);

解决方法

import android.webkit.MimeTypeMap;

// url = file path or suitable URL.
public static String getMIMEType(String url) {
    String mType = null;
    String mExtension = MimeTypeMap.getFileExtensionFromUrl(url);
    if (mExtension != null) {
        mType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(mExtension);
    }
    return mType;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。