FileDocCategorySizeDatePackage
MediaFile.javaAPI DocAndroid 5.1 API15060Thu Mar 12 22:22:30 GMT 2015android.media

MediaFile

public class MediaFile extends Object
MediaScanner helper class. {@hide}

Fields Summary
public static final int
FILE_TYPE_MP3
public static final int
FILE_TYPE_M4A
public static final int
FILE_TYPE_WAV
public static final int
FILE_TYPE_AMR
public static final int
FILE_TYPE_AWB
public static final int
FILE_TYPE_WMA
public static final int
FILE_TYPE_OGG
public static final int
FILE_TYPE_AAC
public static final int
FILE_TYPE_MKA
public static final int
FILE_TYPE_FLAC
private static final int
FIRST_AUDIO_FILE_TYPE
private static final int
LAST_AUDIO_FILE_TYPE
public static final int
FILE_TYPE_MID
public static final int
FILE_TYPE_SMF
public static final int
FILE_TYPE_IMY
private static final int
FIRST_MIDI_FILE_TYPE
private static final int
LAST_MIDI_FILE_TYPE
public static final int
FILE_TYPE_MP4
public static final int
FILE_TYPE_M4V
public static final int
FILE_TYPE_3GPP
public static final int
FILE_TYPE_3GPP2
public static final int
FILE_TYPE_WMV
public static final int
FILE_TYPE_ASF
public static final int
FILE_TYPE_MKV
public static final int
FILE_TYPE_MP2TS
public static final int
FILE_TYPE_AVI
public static final int
FILE_TYPE_WEBM
private static final int
FIRST_VIDEO_FILE_TYPE
private static final int
LAST_VIDEO_FILE_TYPE
public static final int
FILE_TYPE_MP2PS
private static final int
FIRST_VIDEO_FILE_TYPE2
private static final int
LAST_VIDEO_FILE_TYPE2
public static final int
FILE_TYPE_JPEG
public static final int
FILE_TYPE_GIF
public static final int
FILE_TYPE_PNG
public static final int
FILE_TYPE_BMP
public static final int
FILE_TYPE_WBMP
public static final int
FILE_TYPE_WEBP
private static final int
FIRST_IMAGE_FILE_TYPE
private static final int
LAST_IMAGE_FILE_TYPE
public static final int
FILE_TYPE_M3U
public static final int
FILE_TYPE_PLS
public static final int
FILE_TYPE_WPL
public static final int
FILE_TYPE_HTTPLIVE
private static final int
FIRST_PLAYLIST_FILE_TYPE
private static final int
LAST_PLAYLIST_FILE_TYPE
public static final int
FILE_TYPE_FL
private static final int
FIRST_DRM_FILE_TYPE
private static final int
LAST_DRM_FILE_TYPE
public static final int
FILE_TYPE_TEXT
public static final int
FILE_TYPE_HTML
public static final int
FILE_TYPE_PDF
public static final int
FILE_TYPE_XML
public static final int
FILE_TYPE_MS_WORD
public static final int
FILE_TYPE_MS_EXCEL
public static final int
FILE_TYPE_MS_POWERPOINT
public static final int
FILE_TYPE_ZIP
private static final HashMap
sFileTypeMap
private static final HashMap
sMimeTypeMap
private static final HashMap
sFileTypeToFormatMap
private static final HashMap
sMimeTypeToFormatMap
private static final HashMap
sFormatToMimeTypeMap
Constructors Summary
Methods Summary
static voidaddFileType(java.lang.String extension, int fileType, java.lang.String mimeType)


            
        sFileTypeMap.put(extension, new MediaFileType(fileType, mimeType));
        sMimeTypeMap.put(mimeType, Integer.valueOf(fileType));
    
static voidaddFileType(java.lang.String extension, int fileType, java.lang.String mimeType, int mtpFormatCode)

        addFileType(extension, fileType, mimeType);
        sFileTypeToFormatMap.put(extension, Integer.valueOf(mtpFormatCode));
        sMimeTypeToFormatMap.put(mimeType, Integer.valueOf(mtpFormatCode));
        sFormatToMimeTypeMap.put(mtpFormatCode, mimeType);
    
public static java.lang.StringgetFileTitle(java.lang.String path)

        // extract file name after last slash
        int lastSlash = path.lastIndexOf('/");
        if (lastSlash >= 0) {
            lastSlash++;
            if (lastSlash < path.length()) {
                path = path.substring(lastSlash);
            }
        }
        // truncate the file extension (if any)
        int lastDot = path.lastIndexOf('.");
        if (lastDot > 0) {
            path = path.substring(0, lastDot);
        }
        return path;
    
public static android.media.MediaFile$MediaFileTypegetFileType(java.lang.String path)

        int lastDot = path.lastIndexOf('.");
        if (lastDot < 0)
            return null;
        return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase(Locale.ROOT));
    
public static intgetFileTypeForMimeType(java.lang.String mimeType)

        Integer value = sMimeTypeMap.get(mimeType);
        return (value == null ? 0 : value.intValue());
    
public static intgetFormatCode(java.lang.String fileName, java.lang.String mimeType)

        if (mimeType != null) {
            Integer value = sMimeTypeToFormatMap.get(mimeType);
            if (value != null) {
                return value.intValue();
            }
        }
        int lastDot = fileName.lastIndexOf('.");
        if (lastDot > 0) {
            String extension = fileName.substring(lastDot + 1).toUpperCase(Locale.ROOT);
            Integer value = sFileTypeToFormatMap.get(extension);
            if (value != null) {
                return value.intValue();
            }
        }
        return MtpConstants.FORMAT_UNDEFINED;
    
public static java.lang.StringgetMimeTypeForFile(java.lang.String path)

        MediaFileType mediaFileType = getFileType(path);
        return (mediaFileType == null ? null : mediaFileType.mimeType);
    
public static java.lang.StringgetMimeTypeForFormatCode(int formatCode)

        return sFormatToMimeTypeMap.get(formatCode);
    
public static booleanisAudioFileType(int fileType)

        addFileType("MP3", FILE_TYPE_MP3, "audio/mpeg", MtpConstants.FORMAT_MP3);
        addFileType("MPGA", FILE_TYPE_MP3, "audio/mpeg", MtpConstants.FORMAT_MP3);
        addFileType("M4A", FILE_TYPE_M4A, "audio/mp4", MtpConstants.FORMAT_MPEG);
        addFileType("WAV", FILE_TYPE_WAV, "audio/x-wav", MtpConstants.FORMAT_WAV);
        addFileType("AMR", FILE_TYPE_AMR, "audio/amr");
        addFileType("AWB", FILE_TYPE_AWB, "audio/amr-wb");
        if (isWMAEnabled()) {
            addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma", MtpConstants.FORMAT_WMA);
        }
        addFileType("OGG", FILE_TYPE_OGG, "audio/ogg", MtpConstants.FORMAT_OGG);
        addFileType("OGG", FILE_TYPE_OGG, "application/ogg", MtpConstants.FORMAT_OGG);
        addFileType("OGA", FILE_TYPE_OGG, "application/ogg", MtpConstants.FORMAT_OGG);
        addFileType("AAC", FILE_TYPE_AAC, "audio/aac", MtpConstants.FORMAT_AAC);
        addFileType("AAC", FILE_TYPE_AAC, "audio/aac-adts", MtpConstants.FORMAT_AAC);
        addFileType("MKA", FILE_TYPE_MKA, "audio/x-matroska");
 
        addFileType("MID", FILE_TYPE_MID, "audio/midi");
        addFileType("MIDI", FILE_TYPE_MID, "audio/midi");
        addFileType("XMF", FILE_TYPE_MID, "audio/midi");
        addFileType("RTTTL", FILE_TYPE_MID, "audio/midi");
        addFileType("SMF", FILE_TYPE_SMF, "audio/sp-midi");
        addFileType("IMY", FILE_TYPE_IMY, "audio/imelody");
        addFileType("RTX", FILE_TYPE_MID, "audio/midi");
        addFileType("OTA", FILE_TYPE_MID, "audio/midi");
        addFileType("MXMF", FILE_TYPE_MID, "audio/midi");
        
        addFileType("MPEG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
        addFileType("MPG", FILE_TYPE_MP4, "video/mpeg", MtpConstants.FORMAT_MPEG);
        addFileType("MP4", FILE_TYPE_MP4, "video/mp4", MtpConstants.FORMAT_MPEG);
        addFileType("M4V", FILE_TYPE_M4V, "video/mp4", MtpConstants.FORMAT_MPEG);
        addFileType("3GP", FILE_TYPE_3GPP, "video/3gpp",  MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2", MtpConstants.FORMAT_3GP_CONTAINER);
        addFileType("MKV", FILE_TYPE_MKV, "video/x-matroska");
        addFileType("WEBM", FILE_TYPE_WEBM, "video/webm");
        addFileType("TS", FILE_TYPE_MP2TS, "video/mp2ts");
        addFileType("AVI", FILE_TYPE_AVI, "video/avi");

        if (isWMVEnabled()) {
            addFileType("WMV", FILE_TYPE_WMV, "video/x-ms-wmv", MtpConstants.FORMAT_WMV);
            addFileType("ASF", FILE_TYPE_ASF, "video/x-ms-asf");
        }

        addFileType("JPG", FILE_TYPE_JPEG, "image/jpeg", MtpConstants.FORMAT_EXIF_JPEG);
        addFileType("JPEG", FILE_TYPE_JPEG, "image/jpeg", MtpConstants.FORMAT_EXIF_JPEG);
        addFileType("GIF", FILE_TYPE_GIF, "image/gif", MtpConstants.FORMAT_GIF);
        addFileType("PNG", FILE_TYPE_PNG, "image/png", MtpConstants.FORMAT_PNG);
        addFileType("BMP", FILE_TYPE_BMP, "image/x-ms-bmp", MtpConstants.FORMAT_BMP);
        addFileType("WBMP", FILE_TYPE_WBMP, "image/vnd.wap.wbmp");
        addFileType("WEBP", FILE_TYPE_WEBP, "image/webp");
 
        addFileType("M3U", FILE_TYPE_M3U, "audio/x-mpegurl", MtpConstants.FORMAT_M3U_PLAYLIST);
        addFileType("M3U", FILE_TYPE_M3U, "application/x-mpegurl", MtpConstants.FORMAT_M3U_PLAYLIST);
        addFileType("PLS", FILE_TYPE_PLS, "audio/x-scpls", MtpConstants.FORMAT_PLS_PLAYLIST);
        addFileType("WPL", FILE_TYPE_WPL, "application/vnd.ms-wpl", MtpConstants.FORMAT_WPL_PLAYLIST);
        addFileType("M3U8", FILE_TYPE_HTTPLIVE, "application/vnd.apple.mpegurl");
        addFileType("M3U8", FILE_TYPE_HTTPLIVE, "audio/mpegurl");
        addFileType("M3U8", FILE_TYPE_HTTPLIVE, "audio/x-mpegurl");

        addFileType("FL", FILE_TYPE_FL, "application/x-android-drm-fl");

        addFileType("TXT", FILE_TYPE_TEXT, "text/plain", MtpConstants.FORMAT_TEXT);
        addFileType("HTM", FILE_TYPE_HTML, "text/html", MtpConstants.FORMAT_HTML);
        addFileType("HTML", FILE_TYPE_HTML, "text/html", MtpConstants.FORMAT_HTML);
        addFileType("PDF", FILE_TYPE_PDF, "application/pdf");
        addFileType("DOC", FILE_TYPE_MS_WORD, "application/msword", MtpConstants.FORMAT_MS_WORD_DOCUMENT);
        addFileType("XLS", FILE_TYPE_MS_EXCEL, "application/vnd.ms-excel", MtpConstants.FORMAT_MS_EXCEL_SPREADSHEET);
        addFileType("PPT", FILE_TYPE_MS_POWERPOINT, "application/mspowerpoint", MtpConstants.FORMAT_MS_POWERPOINT_PRESENTATION);
        addFileType("FLAC", FILE_TYPE_FLAC, "audio/flac", MtpConstants.FORMAT_FLAC);
        addFileType("ZIP", FILE_TYPE_ZIP, "application/zip");
        addFileType("MPG", FILE_TYPE_MP2PS, "video/mp2p");
        addFileType("MPEG", FILE_TYPE_MP2PS, "video/mp2p");
    
        return ((fileType >= FIRST_AUDIO_FILE_TYPE &&
                fileType <= LAST_AUDIO_FILE_TYPE) ||
                (fileType >= FIRST_MIDI_FILE_TYPE &&
                fileType <= LAST_MIDI_FILE_TYPE));
    
public static booleanisDrmFileType(int fileType)

        return (fileType >= FIRST_DRM_FILE_TYPE &&
                fileType <= LAST_DRM_FILE_TYPE);
    
public static booleanisImageFileType(int fileType)

        return (fileType >= FIRST_IMAGE_FILE_TYPE &&
                fileType <= LAST_IMAGE_FILE_TYPE);
    
public static booleanisMimeTypeMedia(java.lang.String mimeType)

        int fileType = getFileTypeForMimeType(mimeType);
        return isAudioFileType(fileType) || isVideoFileType(fileType)
                || isImageFileType(fileType) || isPlayListFileType(fileType);
    
public static booleanisPlayListFileType(int fileType)

        return (fileType >= FIRST_PLAYLIST_FILE_TYPE &&
                fileType <= LAST_PLAYLIST_FILE_TYPE);
    
public static booleanisVideoFileType(int fileType)

        return (fileType >= FIRST_VIDEO_FILE_TYPE &&
                fileType <= LAST_VIDEO_FILE_TYPE)
            || (fileType >= FIRST_VIDEO_FILE_TYPE2 &&
                fileType <= LAST_VIDEO_FILE_TYPE2);
    
private static booleanisWMAEnabled()

        List<AudioDecoder> decoders = DecoderCapabilities.getAudioDecoders();
        int count = decoders.size();
        for (int i = 0; i < count; i++) {
            AudioDecoder decoder = decoders.get(i);
            if (decoder == AudioDecoder.AUDIO_DECODER_WMA) {
                return true;
            }
        }
        return false;
    
private static booleanisWMVEnabled()

        List<VideoDecoder> decoders = DecoderCapabilities.getVideoDecoders();
        int count = decoders.size();
        for (int i = 0; i < count; i++) {
            VideoDecoder decoder = decoders.get(i);
            if (decoder == VideoDecoder.VIDEO_DECODER_WMV) {
                return true;
            }
        }
        return false;