1. 程式人生 > >如何新增或者取消對於某種媒體檔案格式的支援

如何新增或者取消對於某種媒體檔案格式的支援

一、新增某些格式
以rmvb格式為例,由於lisence問題,將一個rmvb格式視訊檔案拷貝到手機的SD卡上,該檔案無法顯示為視訊檔案;若貴司有預裝第三方apk來支援播放該格式視訊,可以按照下面的方法,新增對rmvb格式的支援。
在frameworks\base\media\java\android\media\MediaFile.java中:約270行左右,新增RMVB格式的mimeType:

addFileType("AVI", FILE_TYPE_AVI, "video/avi");
addFileType("MOV", FILE_TYPE_QUICKTIME_VIDEO, "video/quicktime");
addFileType("QT", FILE_TYPE_QUICKTIME_VIDEO, "video/quicktime");
addFileType("RMVB", FILE_TYPE_RMVB, "video/x-pn-realvideo");//新增RMVB

然後編譯framework/base模組,將生成的framework.jar和secondary-framework.jar給push到手機中,然後重啟手機:

adb push framework.jar system/framework
adb push secondary-framework.jar system/framework
adb reboot

二、取消某種格式
以WMA/WMV格式為例,若貴司希望取消對於該種格式的支援,可以按下面步驟修改:
第一步 該種格式的mime type原本為video\audio改為未知
修改frameworks\base\media\java\android\media\MediaFile.java

//addFileType(“WMV”, FILE_TYPE_WMV, “video/x-ms-wmv” , MtpConstants.FORMAT_WMV);
//addFileType(“ASF”, FILE_TYPE_ASF, “video/x-ms-asf”);
//addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma", MtpConstants.FORMAT_WMA);

若希望徹底去掉對應的video codec,可繼續第二、三步。
第二步 查詢下面檔案是否有巨集MTK_ASF_PLAYBACK_SUPPORT(JB2,JB3,JB5)或者MTK_WMV_PLAYBACK_SUPPORT和MTK_WMA_PLAYBACK_SUPPORT(JB9,kk)

alps\mediatek\config\Project Name\ProjectConfig.mk
alps\mediatek\config\Platform Name\ProjectConfig.mk
alps\mediatek\config\commone\ProjectConfig.mk

若有,
請將MTK_ASF_PLAYBACK_SUPPORT置為no;
請將MTK_WMV_PLAYBACK_SUPPORT置為no;
請將MTK_WMA_PLAYBACK_SUPPORT置為no;

第三步 修改media_codecs.xml檔案

mediatek\config\common\media_codecs.xml
mediatek\config\Platform Name\media_codec.xml
去掉:
<MediaCodec name=”OMX.MTK.VIDEO.DECODER.VC1” type=”video/x-ms-wmv”>
<MediaCodec name="OMX.MTK.AUDIO.DECODER.WMA" type="audio/x-ms-wma" />