在android平台,从4.0开始,提出了openmax架构,所以在DNK的R7版本中有了openmax AL层播放的DEMO即native media,这个DEMO就是读本地文件,然后把所读buffer通过openmax AL接口送给解码器解码播放,在DEMO里也自带了一个ts文件,我就是在这个基础上NDK编译出JNI库,放源码里mm或用eclipse编译出APK,测试了发现播放OK,从里面代码来看,是支持mpeg2 TS播放. 接着,把其他功能接口如pause,resume,stop等进行了…
基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流.播放.直播.对讲等各种应用,做了RTMP.RTSP.HTTP-FLV.自定义等各种协议,还是有不少收获和心得的.我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量代码,实践证明,这样的程序架构,还是很有效的.这篇文章里,我打算描述一下我对于开发Android端RT…
注册native函数有两种方法:静态注册和动态注册. 1.静态注册方法 根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联联系,以后在调用时会直接使用这个函数,这部分的操作由虚拟机完成. 静态方法就是根据函数名来遍历java和jni函数之间的关联,而且要求jni层函数的名字必须遵循 特定的格式,其缺点在于: 1)javah生成的jni层函数特别长: 2)初次调用native函数时要根据名字搜索对应的jni层函数来建立关联…
原文网址:http://my.oschina.net/u/157503/blog/169041 注册native函数有两种方法:静态注册和动态注册. 1.静态注册方法 根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联联系,以后在调用时会直接使用这个函数,这部分的操作由虚拟机完成. 静态方法就是根据函数名来遍历java和jni函数之间的关联,而且要求jni层函数的名字必须遵循 特定的格式,其缺点在于: 1)javah生成…
PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 Android 平台上快速开发播放器应用. 特性 功能 描述 版本 PLMediaPlayer 类似 Android MediaPlayer,提供了播放器的核心功能 1.2.0+ PLVideoView 类似 Android VideoView,基于 SurfaceView 的播放控件 1.2.0…
public boolean isSupportMediaCodecHardDecoder(){ boolean isHardcode = false; //读取系统配置文件/system/etc/media_codecc.xml File file = new File("/system/etc/media_codecs.xml"); InputStream inFile = null; try { inFile = new FileInputStream(file); } catc…
当出现!!!Observer died. Quickly, do something, ... anything...说明你的程序已经出现严重异常了,那会是什么情况呢?这个问题困扰了我许久,后来原来是使用了mediacodec的非公有API导致的.去掉这个API即OK.…
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w 一.背景 在Android平台,native crash一直是crash里的大头.native crash具有上下文不全.出错信息模糊.难以捕捉等特点,比java crash更难修复.所以一个合格的异常捕获组件也要能达到以下目的: 支持在crash时进行更多扩展操作 打印logcat和应用日志 上报cras…
作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csdn.net/shulianghan VLC 二次开发 视频教程 : http://edu.csdn.net/course/detail/355 博客总结 : -- 本博客目的 : 让 Android 开发者通过看本博客能够掌握独立移植 VLC Media Player 核心框架到自己的 app 中,…
本文主要抛砖引玉,粗略介绍下Android平台RTMP/RTSP播放器中解码和绘制相关的部分(Github). 解码 提到解码,大家都知道软硬解,甚至一些公司觉得硬解码已经足够通用,慢慢抛弃软解了,如果考虑到设备匹配,软硬解码都支持,是个不错的选择,为此,大牛直播SDK在开发这块的时候,分类是这样的: 1. 软解码:解码后获取到原始数据,可进行后续的原始数据回调和快照等操作: 2. 硬解码:解码后获取到原始数据,可进行后续的原始数据回调和快照等操作: 3. 硬解码:设置surface模式,直接r…