自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 收藏
  • 关注

原创 IOS 视频直播/智能家居(一行行敲代码,从零开始)lesson:1整体架构

前段时间由于工作需要做了一个视频直播/智能家居类的应用。算是对IOS音视频专栏中流媒体处理做了一次小结。这里想把整个开发流程纪录下来,一方面是和大家共同探讨学习,另一方面也可以方便自己以后查漏补缺。整个开发没有借助任何第三方框架,所有流媒体协议都是一行行敲上去的,为什么呢?呵呵授之以鱼不如授之以渔!下面开始先了解下整个软件的架构。前端我们在IOS audio&video 专

2015-07-30 10:15:38 2369 4

原创 IOS架构师之路:我对IOS架构的点点认识(大纲)

1、今天我鼓起了勇气,想纪录自己对IOS架构学习成长的点点滴滴。从事IOS开发也有几年的时间,从刚开始最基本的语言、界面、逻辑,再到后面复杂点的线程、数据处理、网络请求、动画,最后到最复杂的底层音视频、图像算法、自定义各种效果、网络底层处理,甚至是最后的性能:neon、asm优化。感觉自己在IOS的开发中,每次都是雾里看花,明明很接近真理却总是触摸不到,对IOS缺乏一种全局把控的感觉。所以我下

2015-07-10 14:39:34 4428

原创 工作这几年做的一些项目

2015-01-08 09:26:30 1388 2

原创 IOS:图片缓存

IOS读取图片的时候可以使用两种方法:[UIImage ImageName:@“imagename”]或者使用 NSString *path = [[NSBundlemainBundle] pathForResource:image]; UIImage *image = [UIImageimageWithContentsOfFile:path];二者在处理很

2015-09-02 17:32:08 730

原创 4 JavaWeb之Mac下eclipse配置Tomcat发布javaweb工程

前面介绍了Myeclipse发布javaweb的情况,这里我们看看eclipse怎么发布javaweb。eclipse的j2ee版本使用的是:http://mirrors.yun-idc.com/eclipse//technology/epp/downloads/release/luna/SR2/eclipse-jee-luna-SR2-macosx-cocoa-x86_64.tar.gz

2015-08-31 15:23:26 1076

原创 3 JavaWeb之Mac下Myeclipse配置Tomcat创建一个简单问web工程

确保Myeclipse 和 Tomcat的java JDK版本一致。New-》web project

2015-08-30 21:08:41 1120 1

原创 2 JavaWeb之Mac下配置Tomcat

MAC 下首先查看下java版本:java -versionlocalhost:~ fastweb$ java -versionjava version "1.8.0"Java(TM) SE Runtime Environment (build 1.8.0-b132)Java HotSpot(TM) 64-Bit Server VM (build 25.0-

2015-08-30 20:44:58 1046

原创 IOS:必须了解的bug技巧,Crash查看

IOS 发布之前 发布之后,测试以及用户在使用的时候难免出现crash。这里就和大家聊一聊,crash的一些问题。如何根据Crash定位代码?定位crash之前我们需要三个文件:xx.crash xx.app xx.dSYMxx.Crash 文件:将真机连接在Mac上,同步手机到电脑上,crash文件在:Mac OS X:~/Library/Logs/CrashRepo

2015-08-28 09:44:17 931

原创 IOS 第三方支付的使用:支付宝

总结一下支付宝IOS使用步骤:1 第三方支付:支付宝使用过程:1.1  向支付宝申请支付宝使用权限。这个步骤一般是以公司的名义,填写各种公司信息,最后审核通过。1.2 获取关键参数selleder_IDparter_ID加密信息1.3  下载支付宝集成SDK(无线移动版)放到我们的应用中1.4 开始编写代码1.4.1 编辑商品信息   

2015-08-17 16:26:17 1000

原创 IOS 视频分解图片、图片合成视频

在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析。(1)视频分解图片这里视频分解图片使用的是AVAssetImageGenerator,利用这个class可以很方便的实现不同时间戳下,视频帧的抓取。注意一般这种视频分解图片帧的方法都是放在子线程中的,而UI更新操作都是放在主线程中的。下面来看看核心代码:

2015-07-27 10:04:04 4210

原创 FFmpeg for ios架构:中级

FFmpeg这部分想了很久,也没找到比较好的讲解方式,本来想像其它博客一样,对着代码一行行的分析。但后来感觉不太现实,FFmpeg应用在IOS上怎么说代码最少也有个5、6k行(包括音视频、业务逻辑),再加上因为小弟也要上班养家,所以没这么多时间写的很详细,只能做一个随笔,简而化之的就整个架构描述描述。不过所有这些提到的地方都是使用的核心难点。不清楚地方还请大家多多包涵,请勿拍砖。呵呵另外除了这

2015-07-22 10:01:37 1796 1

原创 IOS音频架构之Audio Unit

在前面的章节部分我们已经对IOS音频结构有了一个清晰的认识,知道Audio Unit是位于整个音频结构的最底层,这一层很多API已经开始和硬件打交道了。所以比较复杂,有了前面的基础再来看这个部分就比较的容易了。先来看看Audio Unit的结构图:结构图很简单了,就不做过多的描述了。重点说下中间那部分DSP。因为以前读研的时候学的是DSP嵌入式驱动开发算法移植,所以对这部分比较熟悉,就

2015-07-21 09:11:35 4805

原创 AVFoundation视频播放(非音视频流处理)

前面我们已经提到了利用AVFoundation实现音视频播放,那么为什么这里又来讲一次呢?原因在于他们之间在IOS中的层次结构不一样。如果我们吧视频播放排个顺序的话:(1)MediaPlayer.framework(framework) 最上层cocos touch层,简单类比一下。最上层。(2)AVPlayer (calss)多媒体层 第二层(3)AVAsset(class) 可

2015-07-20 14:45:25 10490

原创 AVFoundation视频播放、存储原理分析与使用

在前面的章节,我们分析了Camera拍照录制,获取音视频流的基本过程。以及AVAsset保存音频文件。这里我们还要再来了解下AVAsset以及利用AVFoundation读取音视频流处理的过程。看起来这两个部分可能有些重复,其实不然,在这个部分我们会详细的讨论如何利用AVFoundation读取音视频流数据,实时特效处理,AVAsset音视频文件保存的一些关键点。 利用音视频流播放音视频文件:

2015-07-20 09:47:11 2670

原创 IOS:Camera的特性分析与使用3_OPENGL特效

本来想用2个篇幅结束Camera软件部分的介绍,后来发现,非常重要的一点OpenGL还没介绍,所以又增加了这一篇。这篇主要描述一下几个方面的内容:(1)录像界面OPENGL展示(2)录像实时特效处理(3)视频等比例缩放、旋转 如:等比例、16:9 4:3 1:1等这个部分我思来想去缺失不太好讲,设计到的知识太多,尤其是OpenGL的一些专业知识,通过一篇博客普及OpenGL的知

2015-07-16 14:05:28 1753

原创 IOS:Camera的特性分析与使用2_AVCapture

AVCapture前面我们已经分析了Camera的UIImageViewController使用,这个部分我们再来看下AVCapture怎么使用的。(1)输入源设置:相机、照片库(2)设置前后摄像头(3)设置视频质量(4)设置照片、视频模式(5)设置闪光灯打开方式(6)视频编辑(7)自定义摄像界面我们同样从这几个分部分析下AVCapt

2015-07-16 09:52:20 1023

原创 IOS:Camera的特性分析与使用

Camera是IOS中非常重要的一个信息获取途径。下面我们主要从硬件特性以及软件特性两个方面来看看Canera的使用,先来看看软件上我们使用Camera都能干点什么。先来看看下面一张图:相机软件部分主要介绍两个部分: UIImagePickerController AVCaptureAVCapture的结构和使用在前面的博客中已经介绍了,这里先来看看UIImagePic

2015-07-16 08:47:43 1403

原创 AudioQueue(AudioToolBox)的原理与使用

前面和大家探讨了AVFoundation对音频进行录制播放的多种方式,尤其是前一节,比较底层的控制了音频的录制。下面我们再来看看音频的整体框架:我们来介绍介绍中间层黄色部分:AudioToolBox这个部分主要探讨用Audio Queue对音频进行播放,当然可以用来录制。(因为上一节将的录制,所以为了不重复及多样性,我们这节将播放)先看看音频播放的原理:录音过程

2015-07-14 10:17:49 2686 1

原创 AudioSession/AudioCaptureSession的分析与使用

这个是AudioSession的结构图:前一个部分已经介绍了AVFoundation对音频录制、播放的一种方法,下面再介绍另外一种:AVCaptureSession用这个类的优点在什么地方呢?(1)可以方面的对输入源进行控制:方便录制音频视频,抓取图片。(2)采集到数据源方便二次加工,比如音频变声、加背景音乐,视频添加滤镜特效。(3)定制编解码方法,尽可能采用I

2015-07-14 09:49:54 1616

原创 利用AVFoundation定制个性化音视频播放

我们按照这个图,从上到下一点点看看整个IOS的音频结构。MediaPlayer太简单了,这里就不介绍了。先从AVFoundation看起:这个框架下的类太多了,我们调几个比较重要的说说:(1)    AVAsset:读写音视频文件,建立一系列的读写方法,获取音频视频数据。非常重要。(2)    AVAudioPlayer:音频播放,定制音频播放界面,对音频播放、暂停、快进、快退、循

2015-07-14 09:28:37 1417

原创 音频格式详解:WAV

(1)音频格式:典型WAV封装格式是每个音频文件必不可少的组成部分之一,它给我们提供了以下参考信息。音频文件类型、编解码方法、单双声道、采样深度、采样率、量化位数、音频文件大小、长度。下面首先来分析一下经典的wav音频的封装格式。个人精力有限不可能把每种音视频格式都一一解析,所以这里分别挑选了音频:Wav,视频Mp4两种多媒体文件格式介绍:下面我们对每一个字段进行详细的分析。整

2015-07-13 17:44:39 8837

原创 PHP后台2:客户端(IOS/Android)Post请求以及JSON数据编解码

(1)IOS客户端Post请求+PHP服务器Post响应PHP服务器代码:   if($_POST) {       foreach($_POST as $index => $value)echo "$_POST[$index] = $value","";       foreach($_GET as $index => $value)echo

2015-06-30 10:34:39 997

原创 PHP后台1:客户端(IOS/Android)GET请求PHP后台

做为一名客户端开发者,工作了几年之后,发现自己确实需要了解下,服务器到底是如何设计、工作的。掌握了客户端的开发,如果在会一点服务器的开发,那么对项目整体的把握会有一个新的认识。最不济在开发客户端的同时,也不必整天追着服务器的人员寻求配合,自己可以搭建一个简单的本地服务器进行代码功能测试。(1)hello web先介绍下我使用的开发平台:XAMPP(apache+mysql+php)快速继承

2015-06-30 09:58:19 859

原创 IOS图像9之自定义侧划栏(类似新浪微博Swift)

效果:整个策划栏的实现,其实就是将一个包含tableview的view添加到了window上。self.window?.addSubview(sliderViewController.view)使用起来很方便,这里重点介绍下,显示一半弹出动画,以及底部整体模糊效果。    func sliderVCDismiss(taptouch:UITapGest

2015-06-29 17:42:08 720

原创 IOS图像8之IOS7.0之后UIViewController自定义转场动画

动画效果如下:-(NSTimeInterval)transitionDuration:(idUIViewControllerContextTransitioning>)transitionContext{   return 1.0;}-(void)animateTransition:(idUIViewControllerContextTransitioning>

2015-06-29 15:51:59 545

原创 IOS图像7之IOS图片、动画框架

先看看IOS中和图片相关的框架结构:与图像动画相关的框架以及引擎如下:QuartzCore.framework : 主要包括Core Animation 核心动画、CALayer也是这个框架下面的。CoreGraphsic.framework:主要包括CGContext类、Quartz2d是一个绘图引擎,由CoreGraphsic提供一组API。OPENGLES:这个即使一

2015-06-29 15:02:22 561

原创 Android组建6:android中关闭所有的Activity

有时候在应用中会遇到,当应用退出的时候,所有的Activity都需要关闭的情况:(1)首先定义一个类,即成Application(manifest中肯定要注册一下)(2)在这个类中定义一个单例类private static Myclass instance;public static MyClass getInstance() {          if (null ==

2015-06-23 16:01:50 436

原创 IOS小知识点17nil Nil NULL NSNull

(1) Nil 用于oc的类(2) nil 用于oc实例的对象(3) NULL 用于c语言(4) NSNull用于oc中非nil的空内容,经常用于NSDictionaryswift中需要这样判断:if(item["test_url"]!.isMemberOfClass(NSNull))swift中判断是否为nil时,定义的var 一定要设定为?数组或者字符串转换

2015-06-19 17:19:49 549

原创 Android组建5:android中一些常见的类型转换ID/Drawable/Byte/Bitmap..

(1) id-->drawable   Drawable drawable = activity.getResources().getDrawable(R.drawable.image1);(2) id-->Bitmap   Bitmap bitmap = BitmapFactory. decodeResource (Resources   res, int id)

2015-06-15 17:39:18 556

原创 Android组建4:android中需要注意的几个地方

(1)Android代码导入之后经常碰到API不符合的情况。这种情况下,可以选中工程,右击选择properties属性。然后选择android。选择你当前有的API进行加载。(2)加载android源文件按住ctrl(Mac下command按钮)查看任何一个属性,如果有源码会跳转到源码界面。如果没有可以手动添加。源码所在路径:SDK/Source 目录下(3)鼠标放在一个对

2015-06-15 09:18:06 502

原创 Android组建3:几个容易混淆的地方(this,getApplicationContext,fill_parent match_parent)

(1)首先Application、Activity、Service都是直接或间接的继承Content(2)一个应用程序中Content的个数=Application(1)+Activity(个数)+Service(个数)(3)this 如果在Activity中使用,表示当前使用的Activity的上下文。但如果这个Activity有内部类,在内部类中使用这个this,表示的仅仅是内部类的上

2015-06-12 15:19:47 500

原创 Android组建2:动态加载View(对比IOS)

Android中View是用于显示的界面。IOS中Layer是用于显示的界面。Android中ViewGroup是界面+界面的管理。IOS中UIView是界面+界面管理等响应事件。Android中五大布局和ViewGroup类似,是吧很多view组织在一起的一种形式。(1)xml加载另一个xmlLinearLayoutxmlns:android="h

2015-06-12 14:39:11 517

原创 Android组建1:Intent的使用

Android中Activity之间或者Activity与Server之间进行界面切换数据交互,使用最多的便是Intent。(1) Intent 传递String等基本数据 并返回(2) Intent 传递 List(3) Intent 传递对象(4) Intent 传递List(5) Application 共享全局数据(1) Intent 传递String等基本数据 并

2015-06-12 11:47:45 505

原创 android数据存储读取6:contentProvider的使用(提供自己应用的数据)

contentprovider 可以提供应用的数据供其它的应用使用。同时也可以利用它访问其它的应用。比如访问手机短信、手机Music、联系人等等。优点在于提供了公共的、统一的数据访问接口。也就是说 别的应用调用 固定的都有增删改查方法ContentProvider的使用大致可以分为下面几个部分:首先我们需要定义一个类继承ContentProviderpublic cla

2015-06-11 11:10:54 544

原创 android数据存储读取5:Sqlite一些要注意的地方

Android中使用sqlite,有几个地方需要注意:(1)如果数据库不做版本更新,不新增或者删除字段,一半可以吧数据库定义为单例模式(2)如果需要更新数据库,注意update方法的使用(3)事务的使用。一方面可以保证数据的读写原子性。另一方面在大数据插入的时候,可以有效的改进性能。事务操作demo:PersonSQLiteOpenHelper openHelper =

2015-06-10 16:49:27 532

原创 android数据存储读取4:Sqlite(CRUD)

在android中使用数据库,可以使用sql语句,也可以使用android对sql封装的api。android对sql封装的api的操作添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。Android对数据库操作可以分为几个主要的部分(1)数据库帮助类/** * 数据库帮助类, 用于创建

2015-06-10 10:44:48 462

原创 android数据存储读取3:对象保存(对比IOS)

Android下通过文件或者通过sharedPreference都可以保存对象IOS下使用NSCoder保存起来,也很方便。Android:文件保存对象 (要保存的对象一定要实现序列化的接口 implements Serializable)(1)创建一个输出流FileOutputStream fos = this.openFileOutput("test.out",Contex

2015-06-10 09:44:28 512

原创 android数据存储读取2:文件存储(对比IOS)

Android:数据存储可以保存在手机内部存储空间内,也可以保存在手机外部sdcard中。当然现在很多手机都把这个外部存储卡集成到了手机内部了,不需要插拔。IOS:直接写到沙盒中,没有内外之分。Android:文件流操作IOS:writeToFile 这个方法非常的简单容易使用。(1)将文件存储在外部SDCard中1.1 首先检查外部SDCard是否存在1.2 获取外部SD

2015-06-09 11:44:56 615

原创 android数据存储读取1:SharedPreferences(对比IOS)

android中提供了一个轻量级的数据存储方法:SharedPreferencesIOS中同样也有一个轻量级的数据存储方法:preferenceandroid相关类:SharedPreferencesIOS相关类:NSUserDefaultsandroid:sharedPreference 的保存格式是xml。保存路径:/data/data//shared_pref

2015-06-09 11:19:28 1188

原创 IOS小知识点16第三方类库管理工具:cocoapod的使用2

(1) 将包含pod的工程还原打开工程。然后将整个pods工程删掉。删除原工程中,如libpod.a等各种pod相关文件。选中自己的工程-》Build Phases-》然后下面两个 点击右面的xx 删掉(2) pod xmpp带来的一些问题pod0.35 以及0.37版本编译xmpp都有冲突。可以将版本降低到0.34先卸载:sudo gem uninstal

2015-05-27 13:28:54 563

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除