Android多媒体--MediaCodec的实例化方法
*由于作者水平限制,文中难免有错误和不恰当之处,望批评指正。
*转载请注明出处:http://www.cnblogs.com/roger-yu/
MediaCodec的实例化方法主要有两种:
1、使用方法createByCodecName(String)----根据特定的MediaFormat创建
这种方法使用的前提是你必须知道要实例化的codec的确切的名字。这种方法使用时,通常会利用MediaCodecList类来获取相关的codec name信息。
例子:在对一个file进行解码时,首先你可以调用MediaExtractor.getTrackFormat方法获得期望的Format,如有需要可以调用MediaFormat.setFeatureEnabled方法添加新特性;然后调用MediaCodecList.findDecoderForFormat方法得到可以处理指定media format的codec的name;最后根据得到的codec name并调用createByCodecName(String)方法实例化需要的MediaCodec。
注意:在Android5.0系统上,使用MediaCodecList.findDecoder/EncoderForFormat方法时,参数MediaFormat中不能包含有frame rate的特性。可以使用format.setString(MediaFormat.KEY_FRAME_RATE, null)清除已存在的frame rate特性。
2、使用方法createDecoderByType(String)/createEncoderByType(String)---根据指定的MIME type创建
根据指定的MIME type来创建codec。
注意:使用这种方法创建的codec有可能不能处理期望media format的数据,所有最好使用第一种方法。
创建安全的解码器(Creating secure decoders)
在Android 4.4(KITKAT_WATCH)及之前版本,安全的编解码器没有被列在MediaCodecList中,但是仍然可以在系统中使用。安全编解码器只能够通过名字进行实例化,其名字是在常规编解码器的名字后附加.secure标识(所有安全编解码器的名字都必须以.secure结尾),调用createByCodecName(String)方法创建安全编解码器时,如果系统中不存在指定名字的编解码器就会抛出IOException异常。
从Android 5.0(LOLLIPOP)及之后版本,你可以在media format中使用FEATURE_SecurePlayback属性来创建一个安全编解码器。
Android多媒体--MediaCodec的实例化方法的更多相关文章
- Android MediaCodec 的实例化方法
*由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ MediaCodec的实例化方法主要有两种: 1.使用 ...
- Android多媒体--MediaCodec 中文API文档
*由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不 ...
- 【Android 多媒体应用】使用MediaCodec解码使用AudioTrack播放音频数据
1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environ ...
- 【Android 多媒体应用】使用MediaCodec将摄像头采集的视频编码为h264
MainActivity.java import android.app.Activity; import android.graphics.ImageFormat; import android.h ...
- 【Android 多媒体应用】使用MediaCodec解码使用SurfaceView显示视频
1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environ ...
- Android 多媒体视频播放一( 多媒体理解与经验分享)
前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很 ...
- 基于 VLC 的 Android 多媒体解决方案
前段时间项目中需要在 Android 中播放视频.流媒体.查看监控,就研究了一下 Android 多媒体解决方案. 查找了一下,大致有如下几种: Android MediaPlayer FFmpeg ...
- Android多媒体开发(3)————使用Android NKD编译havlenapetr-FFMpeg-7c27aa2
1. 使用NDK去编译官方的FFmpeg原版的话,还得自己实现JNI层与Java层,工程量比较大.所以移植FFmpeg到Android平台时,可以移植一些已经实现JNI与JAVA层的开源项目,毕竟软件 ...
- Android多媒体框架图
Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 ...
随机推荐
- Eliza Doolittle lyrics Big City
Eliza Doolittle lyrics Big City 歌词很好,现在还没有,以后添加进来.
- OpenCV码源笔记——RandomTrees (一)
OpenCV2.3中Random Trees(R.T.)的继承结构: API: CvRTParams 定义R.T.训练用参数,CvDTreeParams的扩展子类,但并不用到CvDTreeParams ...
- 使用 powershell 的 grep 过滤文本
使用 powershell 的 grep 过滤文本 有个log文件,大小在4M左右,要求找出里面耗时超过100s 的记录.首先想到了强大的 grep ,那么就搞起. 先在网上找一下资料,这篇文章,有几 ...
- Mysql:常用代码
C/S: Client Server B/S: Brower Server Php主要实现B/S .net IIS Jave TomCat LAMP:L Mysql:常用代码 Create table ...
- 用git difff 生成补丁
http://stackoverflow.com/questions/1191282/how-to-see-the-changes-between-two-commits-without-commit ...
- 如何在Ubuntu上安装最新版本的Node.js
apt-get update apt-get install -y python-software-properties software-properties-common add-apt-repo ...
- 对github中项目进行更新
进入本地仓库文件夹,我的仓库名是tufujiegit,然后 进入 git clone 接着将先前记录下来的地址复制到后面,回车 将下载github中该仓库的所有文件及文件夹,包括.git文件夹在内 ...
- 转 intent常用功能
1.从google搜索内容Intent intent = new Intent();intent.setAction(Intent.ACTION_WEB_SEARCH);intent.putExtra ...
- struts.custom.i18n.resources 如何配置多个资源文件?
struts.custom.i18n.resources = resources1,resources2,resources3 配置properties文件
- asp.net读excle的数据类型不统一取出空值问题
如果表格里某列全是数字或是字符没问题,但如果混合了全是数字和部分字符就会有部分读取为空连接EXCEL方式如下 string strConn = "Provider=Microsoft.Jet ...