Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2007 The Android Open Source Project
   * Copyright (c) 2012, The Linux Foundation. All rights reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.koushikdutta.ion.loader;
 
MediaScanner helper class.
 
 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_FLAC    = 10;
     public static final int FILE_TYPE_3GPA    = 11;
     public static final int FILE_TYPE_AC3     = 12;
     public static final int FILE_TYPE_QCP     = 13;
     public static final int FILE_TYPE_WEBMA   = 14;
     public static final int FILE_TYPE_PCM     = 15;
     public static final int FILE_TYPE_EC3     = 16;
     private static final int FIRST_AUDIO_FILE_TYPE = ;
     private static final int LAST_AUDIO_FILE_TYPE = ;
 
     // More audio file types
     public static final int FILE_TYPE_DTS   = 300;
     private static final int FIRST_AUDIO_FILE_TYPE2 = ;
     private static final int LAST_AUDIO_FILE_TYPE2 = ;
 
     // MIDI file types
     public static final int FILE_TYPE_MID     = 17;
     public static final int FILE_TYPE_SMF     = 18;
     public static final int FILE_TYPE_IMY     = 19;
     private static final int FIRST_MIDI_FILE_TYPE = ;
     private static final int LAST_MIDI_FILE_TYPE = ;
 
     // Video file types
     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;
     public static final int FILE_TYPE_WEBM    = 30;
     public static final int FILE_TYPE_DIVX    = 31;
     private static final int FIRST_VIDEO_FILE_TYPE = ;
     private static final int LAST_VIDEO_FILE_TYPE = ;
 
     // More video file types
     public static final int FILE_TYPE_MP2PS   = 200;
     private static final int FIRST_VIDEO_FILE_TYPE2 = ;
     private static final int LAST_VIDEO_FILE_TYPE2 = ;
 
     // Image file types
     public static final int FILE_TYPE_JPEG    = 32;
     public static final int FILE_TYPE_GIF     = 33;
     public static final int FILE_TYPE_PNG     = 34;
     public static final int FILE_TYPE_BMP     = 35;
     public static final int FILE_TYPE_WBMP    = 36;
     public static final int FILE_TYPE_WEBP    = 37;
     private static final int FIRST_IMAGE_FILE_TYPE = ;
     private static final int LAST_IMAGE_FILE_TYPE = ;
 
     // Playlist file types
     public static final int FILE_TYPE_M3U      = 41;
     public static final int FILE_TYPE_PLS      = 42;
     public static final int FILE_TYPE_WPL      = 43;
     public static final int FILE_TYPE_HTTPLIVE = 44;
 
     private static final int FIRST_PLAYLIST_FILE_TYPE = ;
     private static final int LAST_PLAYLIST_FILE_TYPE = ;
    // Drm file types
    public static final int FILE_TYPE_FL      = 51;
    private static final int FIRST_DRM_FILE_TYPE = ;
    private static final int LAST_DRM_FILE_TYPE = ;
    // Other popular file types
    public static final int FILE_TYPE_TEXT          = 100;
    public static final int FILE_TYPE_HTML          = 101;
    public static final int FILE_TYPE_PDF           = 102;
    public static final int FILE_TYPE_XML           = 103;
    public static final int FILE_TYPE_MS_WORD       = 104;
    public static final int FILE_TYPE_MS_EXCEL      = 105;
    public static final int FILE_TYPE_MS_POWERPOINT = 106;
    public static final int FILE_TYPE_ZIP           = 107;
    public static class MediaFileType {
        public final int fileType;
        public final String mimeType;
        MediaFileType(int fileTypeString mimeType) {
            this. = fileType;
            this. = mimeType;
        }
    }
    private static final HashMap<StringMediaFileTypesFileTypeMap
            = new HashMap<StringMediaFileType>();
    private static final HashMap<StringIntegersMimeTypeMap
            = new HashMap<StringInteger>();
    // maps file extension to MTP format code
    private static final HashMap<StringIntegersFileTypeToFormatMap
            = new HashMap<StringInteger>();
    // maps mime type to MTP format code
    private static final HashMap<StringIntegersMimeTypeToFormatMap
            = new HashMap<StringInteger>();
    // maps MTP format code to mime type
    private static final HashMap<IntegerStringsFormatToMimeTypeMap
            = new HashMap<IntegerString>();
    private static final HashMap<StringStringsMimeTypeToExtensionMap
            = new HashMap<StringString>();
    static void addFileType(String extensionint fileTypeString mimeType) {
        .put(extensionnew MediaFileType(fileTypemimeType));
        .put(mimeType, Integer.valueOf(fileType));
    }
    static void addFileType(String extensionint fileTypeString mimeTypeint mtpFormatCode) {
        addFileType(extensionfileTypemimeType);
        .put(extension, Integer.valueOf(mtpFormatCode));
        .put(mimeType, Integer.valueOf(mtpFormatCode));
        .put(mtpFormatCodemimeType);
        .put(mimeTypeextension);
    }
    /*
    private static boolean isWMAEnabled() {
        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 boolean isWMVEnabled() {
        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;
    }
    */
    static {
        addFileType("MP3""audio/mpeg".);
        addFileType("MPGA""audio/mpeg".);
        addFileType("M4A""audio/mp4".);
        addFileType("WAV""audio/x-wav".);
        addFileType("WAV""audio/wav");
        addFileType("AMR""audio/amr");
        addFileType("AWB""audio/amr-wb");
        addFileType("DIVX""video/divx");
        /*
        if (isWMAEnabled()) {
            addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma", MtpConstants.FORMAT_WMA);
        }
        */
        addFileType("QCP""audio/qcelp");
        addFileType("OGG""audio/ogg".);
        addFileType("OGG""application/ogg".);
        addFileType("OGA""audio/ogg".);
        addFileType("OGA""application/ogg".);
        addFileType("AAC""audio/aac".);
        addFileType("AAC""audio/aac-adts".);
        addFileType("MKA""audio/x-matroska");
        addFileType("MID""audio/midi");
        addFileType("MIDI""audio/midi");
        addFileType("XMF""audio/midi");
        addFileType("RTTTL""audio/midi");
        addFileType("SMF""audio/sp-midi");
        addFileType("IMY""audio/imelody");
        addFileType("RTX""audio/midi");
        addFileType("OTA""audio/midi");
        addFileType("MXMF""audio/midi");
        addFileType("MPEG""video/mpeg".);
        addFileType("MPG""video/mpeg".);
        addFileType("MP4""video/mp4".);
        addFileType("MPEG4""video/mpeg4".);
        addFileType("M4V""video/m4v".);
        addFileType("3GP""video/3gpp",  .);
        addFileType("3GPP""video/3gpp".);
        addFileType("3G2""video/3gpp2".);
        addFileType("3GPP2""video/3gpp2".);
        addFileType("MKV""video/x-matroska");
        addFileType("WEBM""video/webm");
        addFileType("TS""video/mp2ts");
        addFileType("MPG""video/mp2ts");
        addFileType("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""image/jpeg".);
        addFileType("JPEG""image/jpeg".);
        addFileType("GIF""image/gif".);
        addFileType("PNG""image/png".);
        addFileType("BMP""image/x-ms-bmp".);
        addFileType("WBMP""image/vnd.wap.wbmp");
        addFileType("WEBP""image/webp");
        addFileType("M3U""audio/x-mpegurl".);
        addFileType("M3U""application/x-mpegurl".);
        addFileType("PLS""audio/x-scpls".);
        addFileType("WPL""application/vnd.ms-wpl".);
        addFileType("M3U8""application/vnd.apple.mpegurl");
        addFileType("M3U8""audio/mpegurl");
        addFileType("M3U8""audio/x-mpegurl");
        addFileType("FL""application/x-android-drm-fl");
        addFileType("TXT""text/plain".);
        addFileType("HTM""text/html".);
        addFileType("HTML""text/html".);
        addFileType("PDF""application/pdf");
        addFileType("DOC""application/msword".);
        addFileType("XLS""application/vnd.ms-excel".);
        addFileType("PPT""application/mspowerpoint".);
        addFileType("FLAC""audio/flac".);
        addFileType("ZIP""application/zip");
        addFileType("MPG""video/mp2p");
        addFileType("MPEG""video/mp2p");
    }
    public static boolean isAudioFileType(int fileType) {
        return ((fileType >=  &&
                fileType <= ) ||
                (fileType >=  &&
                fileType <= ) ||
                (fileType >=  &&
                fileType <= ));
    }
    public static boolean isVideoFileType(int fileType) {
        return (fileType >=  &&
                fileType <= )
            || (fileType >=  &&
                fileType <= );
    }
    public static boolean isImageFileType(int fileType) {
        return (fileType >=  &&
                fileType <= );
    }
    public static boolean isPlayListFileType(int fileType) {
        return (fileType >=  &&
                fileType <= );
    }
    public static boolean isDrmFileType(int fileType) {
        return (fileType >=  &&
                fileType <= );
    }
    public static MediaFileType getFileType(String path) {
        int lastDot = path.lastIndexOf('.');
        if (lastDot < 0)
            return null;
        return .get(path.substring(lastDot + 1).toUpperCase(.));
    }
    public static boolean isMimeTypeMedia(String mimeType) {
        int fileType = getFileTypeForMimeType(mimeType);
        return isAudioFileType(fileType) || isVideoFileType(fileType)
                || isImageFileType(fileType) || isPlayListFileType(fileType);
    }
    public static String getExtensionForMimeType(String mimeType) {
        return .get(mimeType).toLowerCase();
    }
    // generates a title based on file name
    public static String getFileTitle(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 int getFileTypeForMimeType(String mimeType) {
        Integer value = .get(mimeType);
        return (value == null ? 0 : value.intValue());
    }
    public static String getMimeTypeForFile(String path) {
        MediaFileType mediaFileType = getFileType(path);
        return (mediaFileType == null ? null : mediaFileType.mimeType);
    }
    public static int getFormatCode(String fileNameString mimeType) {
        if (mimeType != null) {
            Integer value = .get(mimeType);
            if (value != null) {
                return value.intValue();
            }
        }
        int lastDot = fileName.lastIndexOf('.');
        if (lastDot > 0) {
            String extension = fileName.substring(lastDot + 1).toUpperCase(.);
            Integer value = .get(extension);
            if (value != null) {
                return value.intValue();
            }
        }
        return .;
    }
    public static String getMimeTypeForFormatCode(int formatCode) {
        return .get(formatCode);
    }
New to GrepCode? Check out our FAQ X