android 添加或者取消对于某种媒体文件格式的支持

一、添加某些格式

以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" />

时间: 2024-09-30 02:19:30

android 添加或者取消对于某种媒体文件格式的支持的相关文章

android添加账户源码浅析

上篇粗略的分析android添加账号的流程,本篇深入的解析下执行步骤.先来看图片,取自深入理解android卷2: 上图详细的分析了addAccount的流程,下面我们结合源码来理解它 1.addAccount:其实这里省略了一步,应该是客户端addAccount——>AddAccountSettings.addAccount——>AccountManager.addAccount.我们看下setting是如何到AccountManager: private void addAccount(S

Android添加快捷方式(Shortcut)到手机桌面

Android添加快捷方式(Short)到手机桌面 权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限. <!-- 添加快捷方式 --> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <!-- 移除快捷方式 --> <uses-permission android:name="com.andro

Android AlarmManager的取消

取消alarm使用AlarmManager.cancel()函数,传入参数是个PendingIntent实例. 该函数会将所有跟这个PendingIntent相同的Alarm全部取消,怎么判断两者是否相同,android使用的是intent.filterEquals(),具体就是判断两个PendingIntent的action.data.type.class和category是否完全相同. 具体代码如下: 设置闹钟: // 指定启动AlarmActivity组件 Intent intent =

Android 添加数据到本地Excel表中

由于项目需要,今天学习了一下如何将程序里的数据添加到本地的Excel表中. 下面为学习笔记: 先上效果图: 首先,需要导入jxl.jar包到libs文件夹内. 然后创建Excel表,并往表里添加表头. // 创建excel表. public void createExcel(File file) { WritableSheet ws = null; try { if (!file.exists()) { // 创建表 wwb = Workbook.createWorkbook(file); //

android添加edittext后布局就不好用

在布局添加控件手动添加还是拖的添加,添加edittext后布局就不好用,其他控件好用,然后就说下面这段话 Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V Exception details are logged in Window > Show View > Error Log Check the "Android version to use when rendering layouts

android 添加手机短信,获取手机短信,删除手机短信和修改手机短信

注意添加权限: <uses-permission android:name="android.permission.READ_SMS"></uses-permission> <uses-permission android:name="android.permission.WRITE_SMS"></uses-permission> 代码如下: //更新短信 private void UpdateSMS() { /* u

[cocos2dx笔记004] android添加?静态库project

(基于2.2.2版本号) 这步比較麻烦,不像vs2013那样好设置.參考了非常多文章.还是不能解决这个问题.仅仅有慢慢摸索了.在这里贴出来,希望能让大家能少走点弯路. 还是其于前面的文章提到的mylib这个样例.[cocos2dx笔记003] Vs2013添加?静态库project首先进到external\mylib,用文本编辑器打Android.mk 并改动图中圈中的部分 改动结果例如以下 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) L

Android添加button并响应

1.首先要在activity_main.xml文件里新建两个button标签. 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_hei

cocos2d-x android 添加新场景报错: undefined reference to `vtable for XXX&#39;

转载自 居家懒人 http://www.cnblogs.com/JD85/archive/2012/09/17/2688128.html 加入写了新场景SecondScene,结果在cpp文件里类名地方报错说undefined reference to `vtable for SecondScene', 很简单,貌似是每个新场景都要先注册一下,找到jni-->Classes目录下的Android.mk文件,在 LOCAL_SRC_FILES := AppDelegate.cpp HelloWor