随笔分类 - Android
摘要:本文来自:http://www.cnblogs.com/mcodec/articles/1780598.html?page=1#pagedcommentH264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数
阅读全文
摘要:拿到H264的裸流数据是,一般码流结构是SPS,PPS,I帧,P帧......SPS,PPS,I帧,P帧...........。用RTP打包H264数据时,SPS和PPS可以不发,直接发I帧和P帧数据即可。还要看I帧和P帧有多大,如果小于MTU就直接加RTP包发送就可以,如果大于MTU就得分片了。具体的分片方法可以参考RFC3984中。 我用的FU-A,分片方式。 第一个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 1;E = 0;R = 0;Type = ...
阅读全文
摘要:都是摸着石头过河,花了整整一个星期,终于把技术难点给突破了,貌似网上对这个讨论的较少。主要需要实现的功能是在android手机上实时采集视频,并在远程比如PC机上实时显示出来,也就是以android手机作为监控摄像头。一开始查到的是smartcam的一个开源项目,看了下源代码,发现其实现原理是利用android 的camera图像的预采集,通过实现PreviewCallback类的回调函数onPreviewFrame,获得camera采集的原始图像数据之后,压成jpeg格式传到pc端。pc端对接收到的jpeg图像序列进行实时解压和显示,就达到了预想的效果。虽然这种方式稍微显得比较笨拙,这个方式
阅读全文
摘要:刷机具体操作步骤:1、下载升级包文件,解压后把文件夹改为image 再将整个目录复制到手机SD卡上,格式为"sd/image/image.bin" 2、关机 3、按住中间设置键(MENU)+音量上+开机,直接进入到T卡升级界面,你看看到屏中间有个进度条。 4、自动重启后进入系统初始化阶段,请不要操作,直到进入系统 5、升级完成,进入系统正常使用。
阅读全文
摘要:转自:http://www.rosoo.net/a/201106/14631.htmlH264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。在SDP中也说明了本次会话的属性SDP 参数下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H264".. "a=rtpmap" 行中的时钟频率必须是 900
阅读全文
摘要:如果使用模拟器时,手机设置已经开启gps,还是不能获得模拟器信号,或者程序里面一直为null.那么把target换成 api 7.换成2.1的模拟器就可以了应该。
阅读全文
摘要:Obtaining a Maps API KeyTheMapViewclass in the Maps external library is a very useful class that lets you easily integrate Google Maps into your application. It provides built-in map downloading, rendering, and caching of Maps tiles, as well as a variety of display options and controls. It provides
阅读全文
摘要:有可能是DNS的问题:Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人(像我)来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单,只要把模拟器的默认DNS设置成电脑的DNS地址即可。使用adb的shell,确认系统的各项属性adb shellgetpropgetprop会列出系统当前的各项属性在结果里可以看到:[net.dns1]: [10.0.2.3][net.dns2]: [10.0.2.4][net.dns3]: [10.0.
阅读全文
摘要:这个问题会出现两种情况。第一种是UnsatisfiedlinkError:dll名称。说明dll没有放到合适的位置。对于Android开发,我们一般把so放在libs目录下,但是还是会出现这个错误。根本原因System.loadLibrary函数会加载你指定的so,该so中需要链接的所有符号都需要能够链接到,如果有一个链接不成功,那么整个so也会加载失败。仔细检查so中需要的所有符号,确保其存在且在正确的位置上。第二种是UnsatisfiedlinkError:方法名称。说明dll已经成功加载,但是方法名字错了。这个错误最最常见而且基本的解决方法是:仔细对比你的native 方法的原型确保与j
阅读全文
摘要:转载。链接期的 "undefined reference to" 不是少头文件,一般是该链接的 *.so *.a *.o 没有找到,可能是没有,位置不对,配置原因导致命令行里缺少,甚至 Makefile 出错。不是少头文件但也应该不是找不到库或者目标文件,应该是找的到,但是那个库或目标文件里没有那个符号。而没有那个符号的原因,要么是根本没有定义,要么是static的变量
阅读全文
摘要:上贴虽然失败,但是也有收获。上贴失败的原因是和ndk自己带的例子有关。备受折磨后,决定重新写个Ndk的程序。用eclipse新建一个android工程,其实不是android工程也可以。代码如下:package com.sun;import android.app.Activity;import android.os.Bundle;public class JNITest extends Activity { public native int version(); /** Called when the activity is first created. */ @Override publ
阅读全文
摘要:此帖转载,和该篇作者一样,编译完后不知道怎么使用。 marke to keep in mind.(此贴后来验证失败,不过还是给了很大的帮助),下帖是测试成功贴。要在android上用ffmpeg首先得奖ffmpeg工程移植到android上,这里就要用到ndk把这个开源工程编译成一个后缀为so的库,这个步骤这里就不多说了 网上的资料也挺多的,我是按照:http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html在ubantu环境下编译的,你按照教程上一步一步来应该都没有问题,顺便给下在windows下编译ffmpeg的教程:h
阅读全文
摘要:使用yum安装ffmpeg出现后,编译example.c时老是出问题。使用源码重新安装,编译1000行代码tutorial01.c 时出错。使用编译实例文件里面的编译命令失败。出现undefined reference to `img_convert'错误。解决方法:使用下面两个函数代替img_convert(。。。。): img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->
阅读全文
摘要:ffmpeg 编译好像成功了。但是启动ffmpeg时失败了。错误:ffmpeg: relocation error: /usr/local/lib/libavfilter.so.1: symbol sws_isSupportedInput, version LIBSWSCALE_0 not defined in file libswscale.so.0 with link time reference应该是依赖的包有问题,网上找资料,很少,几乎没有参照。只能重新编译。后来发现下面的帖子,使用Yum安装。成功。http://gofedora.com/how-to-install-ffmpeg-f
阅读全文
摘要:查了一周的资料,一点头绪都没有。准备放弃时,看到点提示。记录下来,看看能不能完成。question:路过的大虾们: 我们的产品现在要自己开发一个.mkv的播放器,其中一个要求是实现原唱、伴唱切换的功能(如MKPlayer一样可以切换的那种播放器软件)。 .mkv格式的文件,一般都有3个音轨(1#video,2#audio,3#audio),2#和3#中其中一个是有原唱的,另一个是只有音乐没有原唱的。 不知道有没有大虾们知道在android平台上,软件代码里具体怎么做才能屏蔽其中某一条音轨?就是实现原唱、伴唱切换的那种效果? 另外,能否给个android平台上可以播放.mkv格式文件的播放器源码
阅读全文
摘要:本文出自http://wangstar.javaeye.com/blog/409115,感觉基础知识归纳得不错,就COPY下来方便查找。 动画效果编程基础--Android Animation 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 Rot
阅读全文
摘要:AppWidget就是HomeScreen上显示的小部件,提供直观的交互操作。通过在HomeScreen中长按,在弹出的对话框中选择Widget部件来进行创建,长按部件后并拖动到垃圾箱里进行删除。同一个Widget部件可以同时创建多个。AppWidget的实现主要涉及到以下类:AppWidgetProviderRemoteViewsAppWidgetManager1.首先需要提供一个定义了Widget界面布局的XML文件(位于res/layout/..),需要注意的是使用的组件必须是RemoteViews所支持的,目前原生API中支持的组件如下:FrameLayoutLinearLayoutR
阅读全文
浙公网安备 33010602011771号