Android 8.1 3gpp audio文件被分类成video类型解决方法

        Android 8.1用系统自带的Sound Recorder录音的时候,Voice quality选择High(.3gpp)的时候,录音文件保存的后缀是3gpp,如果此时去改名,然后利用系统自带的文件系统File去查看的时候发现3gpp文件被分类成video而不是audio,这是有问题的。

       原因是录音的时候录音文件的file媒体类型是audio/3gpp,当你对其进行重命名的时候,MediaScanner会对这个文件重新扫描,而MeidaScanner仅仅是通过后缀去判断文件的类型,结果将其判断成video/3gpp,从而导致分类出错。

       详细可以从MediaFile.java这个文件中分析出来

public class MediaFile {

    // Audio file types
    public static final int FILE_TYPE_MP3     = 1;
    public static final int FILE_TYPE_M4A     = 2;
    public static final int FILE_TYPE_WAV     = 3;
    public static final int FILE_TYPE_AMR     = 4;
    public static final int FILE_TYPE_AWB     = 5;
    public static final int FILE_TYPE_WMA     = 6;
    public static final int FILE_TYPE_OGG     = 7;
    public static final int FILE_TYPE_AAC     = 8;
    public static final int FILE_TYPE_MKA     = 9;
    public static final int FILE_TYPE_APE     = 10;
    public static final int FILE_TYPE_FLAC    = 11;
    private static final int FIRST_AUDIO_FILE_TYPE = FILE_TYPE_MP3;
    private static final int LAST_AUDIO_FILE_TYPE = FILE_TYPE_FLAC;

    // MIDI file types
    public static final int FILE_TYPE_MID     = 12;
    public static final int FILE_TYPE_SMF     = 13;
    public static final int FILE_TYPE_IMY     = 14;
    private static final int FIRST_MIDI_FILE_TYPE = FILE_TYPE_MID;
    // Video file types
    public static final int FILE_TYPE_TRP     = 18;
    public static final int FILE_TYPE_FLV     = 19;
    public static final int FILE_TYPE_MPG     = 20;
    public static final int FILE_TYPE_MP4     = 21;
    public static final int FILE_TYPE_M4V     = 22;
    public static final int FILE_TYPE_3GPP    = 23;
    public static final int FILE_TYPE_3GPP2   = 24;
    public static final int FILE_TYPE_WMV     = 25;
    public static final int FILE_TYPE_ASF     = 26;
    public static final int FILE_TYPE_MKV     = 27;
    public static final int FILE_TYPE_MP2TS   = 28;
    public static final int FILE_TYPE_AVI     = 29;
    pu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值