Android多媒体开发技术实战详解

当前位置:首页 > 计算机网络 > 程序设计 > Android多媒体开发技术实战详解

出版社:电子工业出版社
出版日期:2012-8
ISBN:9787121175800
作者:熊斌
页数:490页

章节摘录

版权页:   插图:   (1)定向光 我们日常所见的光源有很多,比如太阳、灯泡、燃烧着的蜡烛等。像太阳这种从无穷远处发射的几乎平行的光被称为定向光。定向光对应的是光源在无穷远处的光,定向光在空间中的所有位置方向都是相同的。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设定定向光,此方法中各个参数的具体说明如下所示。 light:该参数设置为OpenGL ES中的灯,用GL_LIGHT0到GL_LIGHT7分别表示8盏灯。 如果该参数设置为GL_LIGHT0,则表示方法glLightfv()中其余的设置都是针对GL_LIGHT0,即0号灯进行设置的。 pname:被设置的光源属性是由pname定义的,它指定了一个命名参数,在设置定向光时应该设置成GL_POSITION。 params:此参数是一个float数组,该数组由4部分组成,前3个值组成表示定向光方向的向量,光的方向为从向量点处向原点处照射,比如{0,1,0,0}表示沿Y轴负方向的光,最后的0表示此光源发出的光是定向光。 (2)定位光 在自然世界中定向光与定位光是截然不同的,这就像太阳与燃烧的蜡烛之间的区别。但是,在OpenGL ES中实现定向光与定位光的方法十分相似。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设置定位光,其参数含义和上面介绍的定向光中的9lLightfv()方法类似,仅仅是params参数略有不同,其他参数基本都相同。 在定向光中,参数params中的最后一个值被设置为0;而在定位光中,这个值被设置为1。 在定向光中,参数params中的前3个值被设置为光源的向量坐标;而在定位光中,这3个值被设置为光源的位置。 在定向光中,光的方向为给定的坐标点与原点之间的向量,所以params中的坐标不能设置为(0,0,0);而在定位光中,给出的是光源的坐标位置,所以params的前3个参数可以设置为(0,0,0)。 在定位光方法glLightfb()中,其余参数的设置方法与上面介绍的定向光方法glLightfv()相同,在此不再赘述。 2.光源颜色 颜色是光源的一种重要属性,在OpenGL ES中允许把与颜色相关的3个不同参数GL_AMBIENT、GL_DIFFUSE和GL_SPECULAR与任何特定的光源相关联。 (1)GL_AMBIENT环境光 Ambient的意思是环境光,表示一个特定的光源在场景中所添加的环境光的RGBA强度。在默认情况下是不存在环境光的,因为GL_AMBIENT的默认值是(0.0,0.0,0.0,1.0)。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设置光源的环境光,对各个参数的具体说明如下所示。

书籍目录

目 录
第1章 欢迎进入Android世界
1
1.1 最近几年的几件大事
1
1.2 来到智能手机世界
2
1.2.1 何谓智能手机
2
1.2.2 百家争鸣
2
1.3 搭建Android应用开发环境
3
1.3.1 安装Android SDK的系统要求
3
1.3.2 安装JDK、Eclipse、Android SDK
4
1.3.3 设置Android SDK Home
13
1.3.4 验证理论
14
1.3.5 创建Android虚拟设备
15
第2章 准备工作
18
2.1 简析Android安装文件
18
2.1.1 Android SDK目录结构
18
2.1.2 android.jar及内部结构
19
2.1.3 阅读SDK文档需要技巧
20
2.1.4 不简单的SDK工具
22
2.2 系统实例
23
2.3 Android系统架构剖析
26
2.3.1 Android体系结构介绍
26
2.3.2 Android应用工程文件组成
29
2.3.3 应用程序的生命周期
31
第3章 深入底层
34
3.1 为什么要深入底层
34
3.2 搭建Linux开发环境
34
3.2.1 在Linux下安装Android
34
3.2.2 设置环境变量
35
3.2.3 安装编译工具
36
3.3 获取Android源码
36
3.4 分析并编译Android源码
38
3.4.1 Android源码的结构
38
3.4.2 编译Android源码
44
3.4.3 运行Android源码
45
3.4.4 选择编译方法
46
3.5 运行模拟器不是昨日重现
50
3.5.1 在Linux环境下运行模拟器的方法
50
3.5.2 模拟器辅助工具——adb
51
3.6 Android的启动过程
52
3.6.1 Init初始化进程
52
3.6.2 ServiceManager进程
54
3.6.3 Zygote进程
54
3.6.4 SystemService进程
57
3.7 进程之间需要沟通
59
3.8 多核通信
60
3.8.1 内存共享
61
3.8.2 过程调用
69
第4章 多媒体框架
73
4.1 框架学习路线图
73
4.2 Android多媒体系统介绍
73
4.3 OpenMax框架
75
4.3.1 分析OpenMax框架构成
76
4.3.2 实现OpenMax IL接口
80
4.4 OpenCore框架
88
4.4.1 OpenCore层次结构
88
4.4.2 OpenCore代码结构
89
4.4.3 OpenCore编译结构
90
4.4.4 OpenCore OSCL
94
4.4.5 实现OpenCore中的OpenMax
部分
95
4.4.6 OpenCore扩展
107
4.5 StageFright框架是后来者
113
4.5.1 StageFright代码结构
113
4.5.2 StageFright实现OpenMax
接口
114
4.5.3 Video Buffer传输流程
117
第5章 音频系统框架
122
5.1 音频系统结构
122
5.2 分析音频系统的层次
123
5.2.1 层次说明
124
5.2.2 Media库中的Audio框架
124
5.2.3 本地代码
127
5.2.4 JNI代码
130
5.2.5 Java代码
131
5.3 硬件抽象层
131
5.4 分析编码/解码过程
133
5.4.1 AMR编码
133
5.4.2 AMR解码
137
5.4.3 解码MP3
141
第6章 视频系统框架
143
6.1 视频系统结构
143
6.2 分析Overlay抽象层
145
6.2.1 Overlay系统硬件抽象层的接口
145
6.2.2 实现Overlay系统抽象层
147
6.2.3 实现接口
148
6.3 实现Overlay框架
149
第7章 Camera(照相机)系统
152
7.1 Camera系统结构
152
7.2 分析Camera接口和驱动
155
7.2.1 Camera驱动接口
155
7.2.2 硬件抽象层
162
7.3 实现Camera硬件抽象层
166
7.3.1 Java程序部分
166
7.3.2 Camera的Java本地调用部分
167
7.3.3 Camera的本地库libui.so
168
7.3.4 Camera服务libcameraservice.so
169
第8章 振动器系统和警报器系统
174
8.1 振动器系统
174
8.1.1 硬件抽象层
175
8.1.2 JNI框架部分
177
8.1.3 实现硬件抽象层
178
8.2 Alarm警报器系统
179
8.2.1 Alarm系统结构
179
8.2.2 模拟器环境的具体实现
182
第9章 平面世界
183
9.1 强大的Graphics类
183
9.2 用Color类设置文本颜色
183
9.3 用Paint类绘制图像
185
9.4 Canvas类
188
9.5 Rect类
191
9.6 NinePatch类
195
9.7 Matrix类
195
9.8 Bitmap类
199
9.8.1 Bitmap类的功能
200
9.8.2 Bitmap类应用实例
201
9.9 BitmapFactory类
207
9.10 Typeface类
210
9.11 Shader类
210
第10章 二维动画应用
214
10.1 Drawable类
214
10.1.1 认识Drawable类
214
10.1.2 Drawable实现动画效果
215
10.2 实现Tween Animation效果
216
10.2.1 Tween动画基础
216
10.2.2 定义动画效果
221
10.2.3 用实例来体验Tween动画应用(一)
222
10.2.4 用实例来体验Tween动画应用(二)
224
10.3 实现Frame Animation效果
225
10.3.1 Frame动画基础
225
10.3.2 Frame动画应用实例
226
10.4 播放GIF动画
228
10.5 实现EditText动画特效
230
10.6 Property Animation
231
第11章 渲染二维图像
233
11.1 SurfaceFlinger渲染
233
11.1.1 SurfaceFinger基础
233
11.1.2 Surface和Canvas
234
11.1.3 Surface渲染
235
11.2 Skia渲染
238
11.2.1 Skia基础
238
11.2.2 Skia介绍
239
11.2.3 Skia中的类
241
11.2.4 Skia的最大用处是绘图
247
11.2.5 Skia的其他功能
251
第12章 OpenGL ES来了
253
12.1 认识OpenGL ES
253
12.1.1 使用点线法绘制三角形
254
12.1.2 使用索引法绘制三角形
259
12.1.3 使用顶点法绘制三角形
264
12.2 时光的影子
266
12.2.1 正交投影
266
12.2.2 透视投影
267
12.2.3 实现投影效果
267
12.3 体验阳光的魅力
271
12.3.1 何谓光照
271
12.3.2 实现定位光效果
273
12.3.3 开启/关闭光照
279
12.4 高深莫测的纹理映射
284
12.4.1 实现地月模型效果
284
12.4.2 实现三角形纹理贴图效果
292
12.4.3 实现纹理拉伸效果
296
第13章 OpenGL ES进阶
301
13.1 绘制三维图形
301
13.1.1 绘制圆柱体
301
13.1.2 绘制圆环
309
13.1.3 绘制抛物面
313
13.1.4 绘制螺旋面效果
316
13.2 坐标变换
320
13.2.1 缩放变换处理
320
13.2.2 平移变换处理
325
13.3 混合与透明
327
13.3.1 相关基本知识
328
13.3.2 实现混合效果
329
13.4 摄像机和雾特效
333
13.4.1 摄像机
333
13.4.2 雾特效
334
13.4.3 亲眼看一看雾特效和摄像机效果
334
第14章 音频开发应用
345
14.1 实现音频功能的接口类
345
14.2 AudioManager控制铃声
346
14.2.1 AudioManager中介
346
14.2.2 亲手试一试——设置短信提示铃声
349
14.2.3 调节手机音量的大小
352
14.3 录音处理
356
14.3.1 使用MediaRecorder接口录制音频
356
14.3.2 使用AudioRecord录制音频
359
14.3.3 使用AudioRecord接口录音
364
14.3.4 继续使用AudioRecord录制音频
364
14.4 插放音频
367
14.4.1 使用AudioTrack播放音频
367
14.4.2 使用MediaPlayer播放音频
370
14.4.3 不能没有SoundPool
384
14.4.4 使用Ringtone播放铃声
386
14.4.5 使用JetPlayer播放音频
389
14.4.6 使用AudioEffect处理音效
390
14.5 语音识别技术
393
14.5.1 Text-To-Speech技术
394
14.5.2 谷歌的Voice Recognition技术
397
14.6 振动
399
14.6.1 Vibrator类
399
14.6.2 使用Vibrator实现振动效果
401
14.7 闹钟
406
14.7.1 AlarmManager基础
406
14.7.2 闹钟程序
407
第15章 视频开发应用
412
15.1 MediaPlayer的秘密
412
15.2 VideoView就是这么简单
418
15.2.1 VideoView基础
419
15.2.2 使用VideoView实例
421
15.2.3 使用VideoView播放MP4视频
423
15.3 拍照留下美好的瞬间
425
15.3.1 Camera基础
425
15.3.2 小试牛刀
430
第16章 开发一个屏保系统
436
16.1 屏保程序介绍
436
16.2 分析开发屏保程序的原理
436
16.3 我的屏保程序
437
16.3.1 准备素材图片
438
16.3.2 编写布局文件
438
16.3.3 编写主程序文件
439
第17章 开发一个音乐播放器
451
17.1 项目介绍
451
17.2 系统需求分析
451
17.2.1 构成模块
451
17.2.2 系统流程
456
17.2.3 功能结构
457
17.2.4 系统功能说明
457
17.2.5 系统需求
458
17.3 数据库设计
459
17.3.1 字段设计
459
17.3.2 E-R图设计
459
17.3.3 数据库连接
460
17.3.4 创建数据库
460
17.3.5 操作数据库
461
17.3.6 数据显示
462
17.4 具体编码
463
17.4.1 设备服务信息
463
17.4.2 播放器主界面
464
17.4.3 播放列表功能
475
17.4.4 菜单功能模块
479
17.4.5 播放设置界面
482
17.4.6 设置显示歌词
485
17.4.7 文件浏览器模块
486
17.4.8 数据存储
489

编辑推荐

《Android移动开发技术丛书:Android多媒体开发技术实战详解》定位于Android程序开发的不同用户,即可以作初学者的参考资料,也可以作为向此领域发展的程序员的参考书。

作者简介

《Android移动开发技术丛书:Android多媒体开发技术实战详解》内容新颖、知识全面、讲解详细,全书分为17个章节,第1章讲解了Android系统的基本知识;第2章讲解了Android开发之前所要做的工作;第3章讲解了深入底层的基本知识;第4章讲解了多媒体框架的基本知识;第5章讲解了音频系统框架的基本知识;第6章讲解了视频系统框架的基本知识;第7章讲解了Camera照相机系统的基本知识;第8章讲解了振动器系统和警报系统的基本知识;第9章讲解了平面世界的基本知识;第10章讲解了二维动画应用的基本知识;第11章讲解了渲染二维图像的基本知识;第12章讲解了OpenGLES的基本知识;第13章讲解了OpenGLES进阶方面的基本知识;第14章讲解了音频开发的基本知识;第15章讲解了视频开发应用的基本知识;第16章讲解了开发一个屏保系统的具体过程;第17章讲解了开发一个音乐播放器的基本过程。

图书封面


 Android多媒体开发技术实战详解下载



发布书评

 
 


精彩短评 (总计6条)

  •     整书全在贴代码,没有流程讲解,真的觉得不如去看代码。
  •     几章源码剖析讲讲原理,不搞那块儿定制熟悉熟悉也就,绘制和多媒体讲的太普通,没得看
  •     前天早上下单,下午就送来了,还没来得及看
  •     苛求顶起拥有爱得起感觉无可替代
  •     讲解得很全面,涉及到很多多媒体的知识。
  •     很好的书,讲解细致,我正好需要学习OpenGL ES方面的知识,这正是我所需要的。翻了几页,发现作者点功底不错,发货速度快
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024