Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android添加新的視頻格式--媒體庫掃描

Android添加新的視頻格式--媒體庫掃描

編輯:關於Android編程

需求:在mediaprovider數據庫中添加.mov後綴格式的視頻文件

可以使用工具MediaInfo_GUI_0.7.67_Windows.3243836749.exe 查看mov文件編碼格式類型,可以到http://download.csdn.net/detail/deng0zhaotai/8767089下載。

\

 

概要
完整名稱                                     : D:好歌曲學員合.mov
文件格式                                     : MPEG-4
格式簡介                                     : QuickTime
編碼設置ID                                   : qt  
文件大小                                     : 83.8 MiB
長度                                       : 1分 2秒
平均混合碼率                                   : 11.3 Mbps
編碼日期                                     : UTC 2015-04-23 06:07:05
標記日期                                     : UTC 2015-04-23 06:08:38
編碼函數庫                                    : Apple QuickTime
㏕IM                                      : 00:00:00:00
㏕SC                                      : 25
㏕SZ                                      : 1

視頻
ID                                       : 1
文件格式                                     : AVC
文件格式/信息                                  : Advanced Video Codec
格式簡介                                     : [email protected]
格式設置, CABAC                              : 否
格式設置, ReFrames                           : 2 frames
格式設置, GOP                                : M=1, N=50
編碼設置ID                                   : avc1
編碼設置ID/信息                                : Advanced Video Coding
長度                                       : 1分 2秒
碼率                                       : 11.2 Mbps
畫面寬度                                     : 1 920像素
畫面高度                                     : 1 080像素
畫面比例                                     : 16:9
幀率模式                                     : 恆定
幀率                                       : 25.000 fps
色彩空間                                     : YUV
色度抽樣                                     : 4:2:0
位深度                                      : 8位
掃描方式                                     : 逐行掃描
bits/(pixel*frame)(數據密度)                 : 0.216
大小                                       : 82.8 MiB (99%)
標題                                       : 蘋果視頻媒體處理程序 / Apple 替身數據處理程序
語言                                       : English
編碼日期                                     : UTC 2015-04-23 06:07:05
標記日期                                     : UTC 2015-04-23 06:08:38
顏色初選                                     : BT.709
傳輸特質                                     : BT.709
矩陣系數                                     : BT.709

音頻
ID                                       : 2
文件格式                                     : AAC
文件格式/信息                                  : Advanced Audio Codec
格式簡介                                     : LC
編碼設置ID                                   : 40
長度                                       : 1分 2秒
Source_Duration/String                   : 1分 2秒
碼率模式                                     : CBR
碼率                                       : 120 Kbps
額定碼率                                     : 128 Kbps
聲道                                       : 2聲道
聲道位置                                     : Front: L R
采樣率                                      : 48.0 KHz
壓縮模式                                     : 有損壓縮
大小                                       : 909 KiB (1%)
Source_StreamSize/String                 : 909 KiB (1%)
標題                                       : 蘋果聲頻媒體處理程序 / Apple 替身數據處理程序
語言                                       : English
編碼日期                                     : UTC 2015-04-23 06:07:05
標記日期                                     : UTC 2015-04-23 06:08:38

其它
ID                                       : 3
Type                                     : Time code
文件格式                                     : QuickTime TC
長度                                       : 1分 2秒
TimeCode_FirstFrame                      : 00:00:00:00
TimeCode_Settings                        : Striped
標題                                       : 時間碼媒體處理程序 / Apple 替身數據處理程序
語言                                       : English
編碼日期                                     : UTC 2015-04-23 06:08:38
標記日期                                     : UTC 2015-04-23 06:08:38
可以看到兩個有用的信息

 

文件格式 : MPEG-4
格式簡介 : QuickTime

需要修改的文件:frameworks/base/media/java/android/media/MediaFile.java,我們可以參考已有的視頻格式添加

 

// Video file types
    public static final int FILE_TYPE_FLV     = 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;
    public static final int FILE_TYPE_WEBM    = 30;
    public static final int FILE_TYPE_MOV     = 52;
    private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
    private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_WEBM;

添加:public static final int FILE_TYPE_MOV = 52; 這一行

 

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(MOV, FILE_TYPE_MOV, video/quicktime, 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);
        addFileType(FLV, FILE_TYPE_FLV, video/flv);

文件格式 : MPEG-4
格式簡介 : QuickTime

信息可知,添加一行:addFileType(MOV, FILE_TYPE_MOV, video/quicktime, MtpConstants.FORMAT_MPEG);

還要修改一個函數:

 

 

public static boolean isVideoFileType(int fileType) {
        return (fileType >= FIRST_VIDEO_FILE_TYPE &&
                fileType <= LAST_VIDEO_FILE_TYPE)
            || (fileType >= FIRST_VIDEO_FILE_TYPE2 &&
                fileType <= LAST_VIDEO_FILE_TYPE2)
            || (fileType == FILE_TYPE_MOV);
    }
添加條件:fileType == FILE_TYPE_MOV
可以把數據庫刪除:rm -rf /data/data/com.android.providers.media/databases/

然後重啟手機,就可以在video視圖中找到.mov的視頻

當然以上代碼可以作下優化,

 

 

public static final int FILE_TYPE_WEBM = 30;
public static final int FILE_TYPE_MOV = 31;
private static final int FIRST_VIDEO_FILE_TYPE = FILE_TYPE_FLV;
private static final int LAST_VIDEO_FILE_TYPE = FILE_TYPE_MOV;
那麼涉及到後面就需要修改

 

 

// Image file types
    public static final int FILE_TYPE_JPEG    = 31;
    public static final int FILE_TYPE_GIF     = 32;
    public static final int FILE_TYPE_PNG     = 33;
    public static final int FILE_TYPE_BMP     = 34;
    public static final int FILE_TYPE_WBMP    = 35;
    public static final int FILE_TYPE_WEBP    = 36;
    private static final int FIRST_IMAGE_FILE_TYPE = FILE_TYPE_JPEG;
    private static final int LAST_IMAGE_FILE_TYPE = FILE_TYPE_WEBP;

    // 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;
    public static final int FILE_TYPE_DASH     = 45;

    private static final int FIRST_PLAYLIST_FILE_TYPE = FILE_TYPE_M3U;
    private static final int LAST_PLAYLIST_FILE_TYPE = FILE_TYPE_DASH;

    // Drm file types
    public static final int FILE_TYPE_FL      = 51;
 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved