*由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ MediaCodec的实例化方法主要有两种: 1.使用方法createByCodecName(String)----根据特定的MediaFormat创建 这种方法使用的前提是你必须知道要实例化的codec的确切的名字.这种方法使用时,通常会利用MediaCodecList类来获取相关的codec name信息. 例子:在对一个file进行解码时,首先你…
*由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ MediaCodec的实例化方法主要有两种: 1.使用方法createByCodecName(String)----根据特定的MediaFormat创建 这种方法使用的前提是你必须知道要实例化的codec的确切的名字.这种方法使用时,通常会利用MediaCodecList类来获取相关的codec name信息. 例子:在对一个file进行解码时,首先你…
*由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ MediaCodec public final class MediaCodec extends Object Java.lang.Object → android.media.MediaCo…
1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import java.io.IOException; public class MainA…
MainActivity.java import android.app.Activity; import android.graphics.ImageFormat; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.hardware.Camera.PreviewCallback; import android.os.Bundle; import android.vi…
1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * MediaCodec SurfaceHolder Example * @author taehwan * */ public class M…
前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很多细节比较零散凌乱,无法形成规律模式和合理的解决方案,但是慢慢也虽然接触了久了,很多事情也就明白过来了,接触android三年多四年了,慢慢的也有些学习和做事的体会,多媒体的接触过程更加的强化我的学习规律,因为最近公司事情比较少,基本没有加班,晚上就写写自己的博客,分享下以前学习多媒体过程,下面我也…
前段时间项目中需要在 Android 中播放视频.流媒体.查看监控,就研究了一下 Android 多媒体解决方案. 查找了一下,大致有如下几种: Android MediaPlayer FFmpeg Google ExoPlayer Vitamio VLC Android MediaPlayer 是 Android 内置的播放器,支持格式很有限:3gp mp4,且不支持流媒体. FFmpeg 是一套功能强大的跨平台多媒体解决方案,需要用NDK编译,支持海量格式.流媒体. Google ExoPl…
1. 使用NDK去编译官方的FFmpeg原版的话,还得自己实现JNI层与Java层,工程量比较大.所以移植FFmpeg到Android平台时,可以移植一些已经实现JNI与JAVA层的开源项目,毕竟软件行业从来都是站在巨人肩膀上发展的. 2.移植havlenapetr/FFMpeg havlenapetr的开源项目是比较出名的一个FFmpeg工程,很多Android多媒体项目都是在此基础上面修改的. 下载地址:https://github.com/havlenapetr/FFMpeg 可以直接ZI…
Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图…
本文将讲述下列三种C代码回调java方法 1.c代码回调java空方法 2.c代码回调java int类型参数方法 3.c代码回调javaString类型参数方法 方法都差不多,先看c代码回调java空方法,其他两种类似: ① 找到字节码对象 //jclass (*FindClass)(JNIEnv*, const char*); //第二个参数 要回调的java方法所在的类的路径 "com/itheima/callbackjava/JNI" ② 通过字节码对象找到方法对象 //jme…
通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态.当调用了release()方法后,它就处于End状态.这两种状态之间是MediaPlayer对象的生命周期. 1.1) 在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之间有一个微小的但是十分重要的差别.在处于Idle状态时,调用getCurrentPosition…
android中的提示信息显示方法(toast应用) (2011-10-17 11:02:06) 转载▼ 标签: android toast 杂谈 分类: Android android中toast的应用: 本程序实现了用户点击按钮,桌面显示用户在程序中设定好的提示信息 package com.dou.button.activity; import android.app.Activity;import android.os.Bundle;import android.view.View;imp…
Android中JNI的使用方法 首先看一下Android平台的框架图:(网上盗用) 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, 底层包括系统和使用众多的LIiraries都是C/C++编写的. 所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现. 下面将学习Android是如何通过Jni来实现Java对C/C++函数的调用.以HelloWorld程序为例: 第一步: 使用Java编写HelloWor…
如何干净彻底地退出Android应用程序,是很多开发者的心头痒.如何干净地关闭所有已打开的Activity? 如何关闭指定的Activity? 如何关闭一类Activity? 这里,我们提出一种通过实现对Application的扩展,实现了一种高效管理Activity,实现Android干净彻底地退出应用程序. 首先,我们将管理Activity的功能通过一个扩展的Application类来实现. public class MyApplication extends Application { p…
本文实例讲述了Android启动画面的实现方法.分享给大家供大家参考.具体分析如下: 在应用程序中经常用到启动画面,会启动一个后台线程为主程序的运行准备资源.Android要实现启动画面可以这样做: 这是splash.xml布局文件的代码: <LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_height="fill_parent"…
大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一般我会在网上查找在线WAP浏览器,进入之后输入手机网址再访问. 其实根本不用这么麻烦,如果你有在使用Google Chrome浏览器,那就很简单了.看了一下网上的相关教程,总结起来共有三种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备. 第一种方法:新建Chrome快…
本文向你讲述如何用android标准的API (MediaCodec)实现视频的硬件编解码.例程将从摄像头采集视频开始,然后进行H264编码,再解码,然后显示.我将尽量讲得简短而清晰,不展示 那些不相关的代码.但是,我不建议你读这篇文章,也不建议你开发这类应用,而应该转而开发一些戳鱼.打鸟.其乐融融的程序.好吧,下面的内容是写给那些执 迷不悟的人的,看完之后也许你会同意我的说法:Android只是一个玩具,很难指望它来做靠谱的应用. 1.从摄像头采集视频 可以通过摄像头Preview的回调,来获…
大家好,我们这一节讲一下,Android获取Ip的一些方法,在我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址,当然WIFI连接的和 我们3G卡的Ip地址当然是不一样的. 首先我尝试了如下方法: view plain WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddr…
http://blog.csdn.net/halleyzhang3/article/details/11473961 http://www.360doc.com/content/14/0119/10/8122810_346350456.shtml Android 用MediaCodec实现视频硬解码 本文向你讲述如何用Android标准的API (MediaCodec)实现视频的硬件编解码.例程将从摄像头采集视频开始,然后进行H264编码,再解码,然后显示.我将尽量讲得简短而清晰,不展示那些不相…
这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用....我们真的理解了吗? 从实际项目开发说起,这里有开发项目的三种方式: 开发项目中把BLL和DAL分开,在BLL调用DAL的代码. 一.在DAL中使用静态方法,不创建实例直接调用(大概有很多人都使用这种方…
最近在网上看了一些Android下实现自动关机的方法,有的不行,有的只适用一些机型,有的适用于大部分机型,笔者在此总结一下 法一: Intent newIntent = new Intent(Intent.ACTION_SHUTDOWN); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(newIntent); 这种方法笔者试过,运行时出错 法二: try { //获得ServiceManager类        …
android  ksoap2调用.net Webservice 方法直接放到一个类里: package com.util; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; public…
在PHP中类为什么要使用静态方法,有什么好处 不需要实例化?? 可以提高运行效率?? 这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用....我们真的理解了吗? 我特意以“你怎么理解并使用静态方法和实例化方法的?”这样的问题询问了多位程序员,他们开发的语言…
Android 去掉界面标题栏的方法 这个首先要区分当前Activity 是继承了 Activity 类 ,还是 AppCompatActivity 类 情况一:创建的activity默认继承了AppCompatActivity 方法一)全局设置 可以在AndroidManifest.xml中作如下配置,这样就没有标题栏了 <application android:theme="@style/Theme.AppCompat.NoActionBar"> 方法二)针对当前页面单…
      我们知道在Android中,要更新UI只能在UI主线程去更新,而不允许在子线程直接去操作UI,但是很多时候,很多耗时的工作都交给子线程去实现,当子线程执行完这些耗时的工作后,我们希望去修改UI,但Android中又不允许在子线程中去直接修改UI,如:在子线程中执行从服务器下载一张图片的任务,下载完成后,希望这张图片显示一个ImageView上,在子线程中又不能直接操作ImageView,这怎么办呢?我们只能把这张图片发送给UI主线程,然后在主线程中去显示这张图片.为了能够实现这种子线…
Android获取全局Context的方法 Android--应用全局获取Context - 超宇的博客 - CSDN博客https://blog.csdn.net/chaoyu168/article/details/64444274 如何构建Android MVVM 应用框架 -https://tech.meituan.com/android_mvvm.html看这篇文章说的还是需要每个ViewModel需要持了一个Context的引用但应该可以做个ViewModel内都可以使用的,不用每个方…
android排除报很多错方法1.回撤对应layout的xml改动2.回撤对应java的改动3.重命名文件后导致的资源不对应 Execution failed for task ':app:compileDebugJavaWithJavac'  in Android Studio D:\Java\jdk1.8.0_172 默认的配置,编译会经常导致错误…
android studio 添加get,set方法快捷方式…
https://www.jianshu.com/p/5d62a3cf0741 最近使用MediaCodec做编解码H264,写一点东西以免自己再次掉坑. 先说一下具体环境,使用的是,Windows10 + AndroidStudio3.0 + CMake 既然都用了AndroidStudio3.0,就不用android.mk文件啦,直接上CMake. 先上一个,谷歌Android官方链接,可以看到MediaCodec的架构,状态转移图,全部API等. https://developer.andr…