一、添加某些格式
以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" />