Android 获取系统编解码器

媒体编解码器 官网说明。

通过 MediaCodecInfo 拿到解码器信息:

  • getName() :获取编解码器名字。
  • isEncoder() :如果是编码器返回 true 。如果是编码器,返回 false 。
  • isHardwareAccelerated() :如果是硬解码返回 true 。
  • isVendor() :如果编解码器由设备供应商提供,则返回 true;如果由 Android 平台提供,则返回 false。
  • getSupportedTypes() :获取支持的媒体类型。
import android.media.MediaCodecInfo;
import android.media.MediaCodecList;private void MediaCodecInfo(){MediaCodecList list = null;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {list = new MediaCodecList(MediaCodecList.REGULAR_CODECS);MediaCodecInfo[] supportCodes = list.getCodecInfos();if (null != supportCodes && supportCodes.length > 0) {for (MediaCodecInfo info : supportCodes){if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {StringBuilder strTypes = new StringBuilder();String[] types = info.getSupportedTypes();for (int j = 0; j < types.length; j++) {strTypes.append(types[j]).append(",");}Log.d(TAG , "[MainActivity] -- MediaCodecInfo -- "+ "find MediaCodecInfo " + info.getName()+ " , isEncoder:" + info.isEncoder()+ " , isHardwareAccelerated:" + info.isHardwareAccelerated()+ " , isVendor:" + info.isVendor()+ " , supportedTypes:" + strTypes);}}}}}

模拟器运行结果,

find MediaCodecInfo OMX.google.aac.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mp4a-latm,
find MediaCodecInfo OMX.google.amrnb.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/3gpp,
find MediaCodecInfo OMX.google.amrwb.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/amr-wb,
find MediaCodecInfo OMX.google.flac.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/flac,
find MediaCodecInfo OMX.google.g711.alaw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/g711-alaw,
find MediaCodecInfo OMX.google.g711.mlaw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/g711-mlaw,
find MediaCodecInfo OMX.google.gsm.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/gsm,
find MediaCodecInfo OMX.google.mp3.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mpeg,
find MediaCodecInfo OMX.google.opus.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/opus,
find MediaCodecInfo OMX.google.raw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/raw,
find MediaCodecInfo OMX.google.vorbis.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/vorbis,
find MediaCodecInfo OMX.google.aac.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mp4a-latm,
find MediaCodecInfo OMX.google.amrnb.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/3gpp,
find MediaCodecInfo OMX.google.amrwb.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/amr-wb,
find MediaCodecInfo OMX.google.flac.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/flac,
find MediaCodecInfo OMX.google.h264.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/avc,
find MediaCodecInfo OMX.google.h263.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/3gpp,
find MediaCodecInfo OMX.google.hevc.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/hevc,
find MediaCodecInfo OMX.google.mpeg4.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/mp4v-es,
find MediaCodecInfo OMX.google.vp8.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp8,
find MediaCodecInfo OMX.google.vp9.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp9,
find MediaCodecInfo OMX.google.h264.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/avc,
find MediaCodecInfo OMX.google.h263.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/3gpp,
find MediaCodecInfo OMX.google.mpeg4.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/mp4v-es,
find MediaCodecInfo OMX.google.vp8.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp8,
find MediaCodecInfo OMX.google.vp9.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp9,

真机运行结果,

find MediaCodecInfo OMX.google.aac.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mp4a-latm,
find MediaCodecInfo OMX.google.amrnb.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/3gpp,
find MediaCodecInfo OMX.google.amrwb.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/amr-wb,
find MediaCodecInfo OMX.google.flac.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/flac,
find MediaCodecInfo OMX.google.g711.alaw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/g711-alaw,
find MediaCodecInfo OMX.google.g711.mlaw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/g711-mlaw,
find MediaCodecInfo OMX.google.mp3.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mpeg,
find MediaCodecInfo OMX.google.opus.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/opus,
find MediaCodecInfo OMX.google.raw.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/raw,
find MediaCodecInfo OMX.google.vorbis.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/vorbis,
find MediaCodecInfo OMX.google.aac.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/mp4a-latm,
find MediaCodecInfo OMX.google.amrnb.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/3gpp,
find MediaCodecInfo OMX.google.amrwb.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/amr-wb,
find MediaCodecInfo OMX.google.flac.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:audio/flac,
find MediaCodecInfo OMX.MS.AC3.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/ac3,audio/ac3p,audio/eac3,
find MediaCodecInfo OMX.MS.AC4.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/ac4,
find MediaCodecInfo OMX.MS.ADPCM.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/x-adpcm-ima,audio/x-adpcm-ms,
find MediaCodecInfo OMX.MS.DRA.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/vnd.dra,
find MediaCodecInfo OMX.MS.FLAC.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/flac,
find MediaCodecInfo OMX.MS.AAC.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/mp4a-latm-hw,
find MediaCodecInfo OMX.MS.MP1.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/mpeg-L1,
find MediaCodecInfo OMX.MS.MP2.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/mpeg-L2,
find MediaCodecInfo OMX.MS.MP3.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/mpeg,
find MediaCodecInfo OMX.MS.OPUS.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/opus,
find MediaCodecInfo OMX.MS.Passthrough.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/passthrough,
find MediaCodecInfo OMX.MS.VORBIS.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:audio/vorbis,
find MediaCodecInfo OMX.MS.AV1.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/av01,
find MediaCodecInfo OMX.MS.AVC.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/avc,
find MediaCodecInfo OMX.MS.AVS.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/avs,
find MediaCodecInfo OMX.MS.AVS2.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/avs2,
find MediaCodecInfo OMX.MS.FLV.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/flv,
find MediaCodecInfo OMX.MS.H263.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/3gpp,
find MediaCodecInfo OMX.MS.HEVC.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/hevc,
find MediaCodecInfo OMX.MS.MJPG.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/x-motion-jpeg,
find MediaCodecInfo OMX.MS.MPEG2.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/mpeg2,
find MediaCodecInfo OMX.MS.M4V.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/mp4v-es,
find MediaCodecInfo OMX.MS.VC1.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/VC1,
find MediaCodecInfo OMX.MS.VP8.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/x-vnd.on2.vp8,
find MediaCodecInfo OMX.MS.VP9.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/x-vnd.on2.vp9,
find MediaCodecInfo OMX.MS.WMV3.Decoder , isEncoder:false , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/x-ms-wmv,
find MediaCodecInfo OMX.MS.AVC.Encoder , isEncoder:true , isHardwareAccelerated:true , isVendor:true , supportedTypes:video/avc,
find MediaCodecInfo OMX.google.h263.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/3gpp,
find MediaCodecInfo OMX.google.mpeg4.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/mp4v-es,
find MediaCodecInfo OMX.google.vp8.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp8,
find MediaCodecInfo OMX.google.vp9.decoder , isEncoder:false , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp9,
find MediaCodecInfo OMX.google.h264.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/avc,
find MediaCodecInfo OMX.google.h263.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/3gpp,
find MediaCodecInfo OMX.google.mpeg4.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/mp4v-es,
find MediaCodecInfo OMX.google.vp8.encoder , isEncoder:true , isHardwareAccelerated:false , isVendor:false , supportedTypes:video/x-vnd.on2.vp8,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx 代理接口报404 问题排查

今天遇到一个nginx代理后端接口请求报404的问题&#xff0c;问题是这样的&#xff0c;后端由于服务器没有环境&#xff0c;但是需要和前端联调&#xff0c;于是采用cpolar内网穿透的方式&#xff0c;穿出来了。但是前端请求跨域&#xff0c;于是前端用nginx代理了一下后端接口&…

深度学习:到底怎么理解embedding

深度学习&#xff1a;到底怎么理解embedding 注意到embedding这个词&#xff0c;很大可能是在进行时间序列上的处理过程中遇到的&#xff0c;遇到的时间序列模型中&#xff0c;很大部分需要用到embedding过程&#xff0c;同时在看相关的程序代码的时候看到模型的结构设计中设计…

Linux下Centos7 gcc/g++、动态库/静态库(动态/静态链接)

1.gcc/g gcc是对c语言代码进行编译链接&#xff0c;而g是对c代码进行编译链接&#xff0c;接下来我们只对gcc进行讲解&#xff0c;g的使用方法跟gcc是一样的。 编译链接的四个步骤: 1:预处理 2:编译 3:汇编 4:链接 注&#xff1a;这些在后面都会着重讲解 1.1gcc -o 我们先在D…

C++之谓词

C之谓词 一元谓词 #include<iostream> using namespace std; #include<vector> #include<algorithm> //仿函数 返回值类型是boo1数据类型&#xff0c;称为谓词 //一元谓词class GreaterFive { public:bool operator()(int val){return val > 5;} };void …

傅里叶分析(2)

在《傅里叶分析&#xff08;1&#xff09;》中&#xff0c;讲述了连续信号的傅里叶分析方法&#xff0c;本文讲述离散信号的傅里叶分析方法。 虽然电、声、光、机械振动等信号在物理上是连续函数&#xff0c;但在实际工程中&#xff0c;其通常为离散信号&#xff0c;即若干离散…

2024测试工程师必学系列之Jmeter(36):jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过jmeter对图片验证码…

【CSH 入门基础 8 -- csh 中 set 与 setenv 的区别 】

文章目录 set 命令setenv 命令区别设置系统路径变量PATH添加单个路径设置多个路径 举例例子&#xff1a;编辑 .cshrc 文件 设置文件路径设置和使用局部变量永久设置变量 在 csh&#xff08;C shell&#xff09;和它的变体 tcsh&#xff08;增强型 C shell&#xff09;中&#x…

深度学习之基于yolo的体育运动项目姿态估计识别计数系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在体育运动项目姿态估计识别计数系统中的应用是一项具有挑战性和应用价值的研究领域。以下是对深度学习在体…

亚马逊运营中动态/静态住宅IP代理的应用有哪些?跨境电商必备

作为全球最大的电商平台之一&#xff0c;亚马逊已经成为许多商家的首选销售平台。而代理IP作为近几天互联网的热门工具&#xff0c;在跨境电商界也起着非常强大的作用。那么在亚马逊运营中&#xff0c;适合动态住宅代理还是静态住宅代理呢&#xff1f;下面我们一起来探索&#…

位运算技巧及leetcode相关例题Java实现

目录 一、异或运算符的运用&&leetcode136 异或运算符 a ^ b ^ b a leetcode136 二、n & (n - 1)&&leetcode133 n & (n - 1):消除n最右边的一个1 leetcode133/剑指offer15 三、m的n次方&#xff08;n是正整数&#xff09; 常规写法 二进制的快…

LeetCode热题100——贪心算法

贪心算法 1. 买卖股票最大利润2. 跳跃游戏3. 跳跃游戏Ⅱ 1. 买卖股票最大利润 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一…

linuxTcp状态转换

1.TCP状态转换 在TCP进行三次握手&#xff0c;或者四次挥手的过程中&#xff0c;通信的服务器和客户端内部会发送状态上的变化&#xff0c;发生的状态变化在程序中是看不到的&#xff0c;这个状态的变化也不需要程序猿去维护&#xff0c;但是在某些情况下进行程序的调试会去查…

《QT从基础到进阶·三十六》QWidget实现收缩栏的效果

功能&#xff1a; 1、可以在收缩栏插件中添加界面 2、可以把界面展开或收缩 3、可以用鼠标拖动界面改变界面的排放顺序 源码放在最下方 1、可以在收缩栏插件中添加界面 virtual void addWidget(QWidget* widget, const QString& label, const QIcon& icon QIcon())…

打造高效医患沟通:陪诊小程序开发技术指南

随着科技的不断发展&#xff0c;陪诊小程序作为医患沟通的新工具逐渐成为关注焦点。本文将带领你通过使用React和Node.js技术栈&#xff0c;构建一个功能强大且用户友好的陪诊小程序&#xff0c;实现医患互动的便捷和高效。 1. 准备工作 确保你的开发环境中已安装了Node.js和…

封装Vue中的axios请求库

安装axios&#xff1a;首先&#xff0c;在项目中安装axios库。可以使用npm或者yarn进行安装。 npm install axios创建封装文件&#xff1a;在src目录下创建一个api文件夹&#xff0c;并在该文件夹下创建一个request.js文件。 在request.js文件中&#xff0c;引入axios库和Vue&…

点击这里,获取数据治理加速器!

数据管理员&#xff1a;又双叒叕…盘一遍数据&#xff0c;这种工作究竟还要重复多少次&#xff1f;&#xff01; • 上上个月&#xff0c;发现数据有些问题&#xff0c;我把数据盘了一遍&#xff0c;梳理完数据的关联表才定位到问题&#xff1b; • 上个月&#xff0c;进行数据…

竞赛 题目:基于深度学习的人脸表情识别 - 卷积神经网络 竞赛项目 代码

文章目录 0 简介1 项目说明2 数据集介绍&#xff1a;3 思路分析及代码实现3.1 数据可视化3.2 数据分离3.3 数据可视化3.4 在pytorch下创建数据集3.4.1 创建data-label对照表3.4.2 重写Dataset类3.4.3 数据集的使用 4 网络模型搭建4.1 训练模型4.2 模型的保存与加载 5 相关源码6…

js判断参数是否为空方法

这边记录一下大致的判断情况&#xff0c; 写法一&#xff08;不推荐&#xff09;&#xff1a; function foo(arg){//写法一&#xff1a;不严谨arg arg ? arg : 我是默认值console.log(arg) }foo(123) //输出:123 foo() //输出&#xff1a;我是默认值 foo(0) …

去除IDEA中代码的波浪线(黄色警示线)

去除IDEA中代码的波浪线 首先是点击File—>Settings 操作如下图所示: 然后点击Editor—>Inspections—>General—>Duplicated code fragment(去掉勾选)—>Apply—>OK 即可,详情请看下图所示:

【Java】Groovy 语言应用场景以及积累

Groovy 是一种多用途的编程语言&#xff0c;它可以用于多种开发场景。以下是 Groovy 可以用于的一些开发领域和示例&#xff1a; 脚本编写&#xff1a; Groovy 的简洁语法和强大的动态特性使其成为编写脚本的理想选择。 def message "Hello, World!" println messag…