Mediaフォーマット追加

例えば、AndroidのNativeに手を加え、MediaPlayerで再生できるフォーマットを増やしたとする。
しかしそのままでは、その新しいフォーマットはMediaフォーマットとしては認識されず、データベースに登録してくれない。
Mediaフォーマットの追加をするためには、frameworks/base/media/java/android/media/MediaFile.javaを修正する。


36行目あたりから、Audio file types, MIDI file typesと定義している箇所に、任意のフォーマットを定義する。
値は必ず連番になるように指定し、FIRST_XXXX_FILE_TYPEとLAST_XXXX_FILE_TYPEの範囲に入るように変更する。

(例)着信メロディ(SMAF)を追加

    public static final int FILE_TYPE_MID     = 11;
    public static final int FILE_TYPE_SMF     = 12;
    public static final int FILE_TYPE_IMY     = 13;
    public static final int FILE_TYPE_SMAF    = 14;    // 追加!
    private static final int FIRST_MIDI_FILE_TYPE = FILE_TYPE_MID;
    private static final int LAST_MIDI_FILE_TYPE = FILE_TYPE_SMAF;    // SMAFを範囲内に!


98行目あたりから、フォーマットの拡張子とMIME-TYPEの定義をしている。
追加したフォーマットについても、同じように定義する。

    static {
        ...
        addFileType("MMF", FILE_TYPE_SMAF, "application/vnd.smaf");    // 追加!
        ...
    }