黑马程序员技术交流社区

标题: 【阳哥专栏】黑马Android教程-Android基础-11多媒体&传感器 [打印本页]

作者: 王震阳老师    时间: 2015-3-30 13:22
标题: 【阳哥专栏】黑马Android教程-Android基础-11多媒体&传感器
本帖最后由 王震阳老师 于 2015-3-30 14:43 编辑

黑马程序员上海校区招生火爆开启!阳哥约你在上海!









汇总贴:http://bbs.itheima.com/thread-180149-1-1.html
pdf附件回复可下载:

Android-多媒体&传感器
1. 音频播放(★★1.1 MediaPlayer
MediaPlayer播放器状态流程如下图:
该播放器同时只能播放一个音乐文件,文件大小并没有限制。
:MediaPlayer必须严格按照状态图操作,否则就会出现错误,这些错误都是底层抛出,严格按照状态图操作的话一般就不会出问题。
使用MediaPlayer播放音乐的步骤
1.2 SoundPool
    SoundPool和其他声音播放类相比,其特点是可以自行设置声音的品质、音量、播放比率等参数。并且它可以同时管理多个音频流,每个流都有独自的ID,对某个音频流的管理都是通过ID进行的。
1. SoundPool最大只能申请1M的内存空间,这就意味着我们只能用一些很短的声音片段,而不是用它来播放歌 曲或者做游戏背景音乐。
   2. SoundPool提供了pause和stop方法,但这些方法建议最好不要轻易使用,因为有些时候它们可能会使你的程序莫名其妙的终止。有些朋友反映它们不会立即中止播放声音,而是把缓冲区里的数据播放完才会停下来,也许会多播放一秒钟。
3. SoundPool的效率问题。其实SoundPool的效率在这些播放类中算是很好的了,这可能会影响用户体验。也许这不能管SoundPool本身,因为到了性能比较好的Droid中这个延迟就可以让人接受了。
使用SoundPool播放音乐的步骤
1.3使用两种方式播放音乐
该案例比较简单,布局中只需两个按钮,一个用于播放MediaPlayer一个用于播放SoundPool。我们需要将事先准备好的因为文件放到res/raw目录下,其中raw目录需要我们新创建。
代码清单如下:
1.4案例-音乐播放器
:制作一个播放器,能够播放/暂停/停止/重播音乐文件,并且添加一个SeekBar,音乐播放时,SeekBar的滚动条也会变化,拖动SeekBar,可更改声音播放的进度。
:要实现此音乐播放器,必须严格按照上方的MediaPlayer状态流程图进行控制,否则非常容易使应用程序出错挂掉。
新创建一个Android工程《音乐播放器》
修改并使用默认布局文件,布局文件清单如下:
使用并编写默认的MainActivity类,在该类中实现核心业务逻辑。代码清单如下:
  



运行上面的工程,效果图如下:
2. 视频播放(★★2.1 使用MediaPlayer+SurfaceView播放视频文件
:在这里视频播放依然通过MediaPlayer类,为了方便演示,我们直接使用1.4章节中的创建的工程,只需在布局文件添加SurfaceView控件即可。
我们直接在1.4章节的代码基础上进行修改,修改MainActivity类,这里只给出不同的代码片段:
添加如下变量的声明
在play()方法中添加如下代码
获取SurfaceView对象,并设置缓存方式
运行该工程,效果图如下:
2.2 使用VideoView控件显示视频
VideoView跟MediaPlayer相比播放视频步骤要简单的多,因此VideoView自己提供了播放,暂停、快进、快退、进度条等方法。使用起来要方便的很多。
:1、设置布局文件,布局文件比较简单,因此这里只给你VideoView标签。
:上面的方法都是回调方法,我们可以在这些方法里面实现我们的业务逻辑。但是当我们给VideoView设置setMediaController后,控制器才会出现。
4、运行上面代码,效果图如下:
3. 传感器(★★3.1 Android中常见的传感器
Android手机中内置了很多传感器,其主要类型有:方向、加速度(重力)、光线、磁场、距离(临近性)、温度等。
方向传感器     Sensor.TYPE_ORIENTATION
加速度(重力)传感器 Sensor.TYPE_ACCELEROMETER
光线传感器     Sensor.TYPE_LIGHT
磁场传感器     Sensor.TYPE_MAGNETIC_FIELD
距离(临近性)传感器 Sensor.TYPE_PROXIMITY
温度传感器     Sensor.TYPE_TEMPERATURE
3.2 传感器的使用
获取传感器管理器SensorManager:
通过传感器管理器对象获得指定类型的传感器:
通过传感器管理器对象获得手机中所有的传感器:
使用传感器管理器对象注册传感器来使一个传感器工作:
:
listener :传感器事件监听器
sensor :要被注册的传感器对象
rate :采样率,分为最快、游戏、普通、用户界面几种当应用程序请求特定的采样率时,其实只是对传感器子系统的一个建议,不保证特定的采样率可用。
采样率的四种类型详解:
最快: SensorManager.SENSOR_DELAY_FASTEST
最低延迟,一般不是特别敏感的处理不推荐使用,该种模式可能造成手机电力大量消耗,由于传递的为原始数据,算法不处理好将会影响游戏逻辑和UI的性能
游戏: SensorManager.SENSOR_DELAY_GAME
游戏延迟,一般绝大多数的实时性较高的游戏都使用该级别
普通: SensorManager.SENSOR_DELAY_NORMAL
标准延迟,对于一般的益智类或EASY级别的游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧现象
用户界面: SensorManager.SENSOR_DELAY_UI
一般对于屏幕方向自动旋转使用,相对节省电能和逻辑处理,一般游戏开发中我们不使用
3.3 案例-公交防盗
:当手机从衣服兜里被掏出时,手机响铃报警。
:使用距离传感器,当距离从0变为1时,使用MediaPlayer播放声音文件报警
4. 摄像头(★★4.1 调用系统摄像头实现照相和摄像功能
调用系统摄像头进行拍照和摄像无需添加权限,直接调用即可。只需知道系统摄像头的action和category就可以调用系统摄像头。
步骤:


VideoCamera类的action和category
由于希望在调用拍照或摄像功能后回到当前应用的界面,且得知拍照或摄像的结果如何,是否成功,所以在开启Activity时不能使用startActivity方法,而是使用startActivityForResult方法开启Activity,并重写onActivityResult方法处理回传的数据。
:布局文件比较简单,界面只有两个按钮,一个用于打开照相机,一个用于打开摄像机。这里只给出代码清单。
拍照功能
摄像功能(摄像功能跟拍照功能比仅仅是action不同而已)
4.2 编码实现照相功能
使用Camera+SurfaceView控件可实现拍照功能。
步骤:



4.3 编码实现摄像功能
使用Camera+MediaRecoder + SurfaceView控件可实现录制视频的功能。

所需权限:


至此,本文档完!


2014年12月24日星期三 22:30:43
北京市海淀区东北旺中路东馨园



作者: 柳柳桑    时间: 2015-3-30 14:49
拜谢阳哥,大家快来膜拜!~:lol
作者: 真真姐    时间: 2015-3-30 14:50
好贴要顶
作者: 大家叫我小祥子    时间: 2015-3-30 14:50
我报了IOS ,还想学andriod怎么办,怎么办
作者: 上古丶    时间: 2015-3-30 14:50
顶一下、顶一下
作者: 孙晓威    时间: 2015-3-30 14:51
火钳流明
作者: toShareBeauty    时间: 2015-3-30 14:52
{:2_36:}阳哥威武!好资料要共享!
作者: ccjlxq    时间: 2015-3-30 14:54
:lol:victory:
作者: 娇娇老师    时间: 2015-3-30 15:05
阳哥!棒棒哒
作者: doctorsoft    时间: 2015-3-30 15:35
赞一个。。
作者: 阿霞    时间: 2015-3-30 15:37
:):D:):D:loveliness:!!!!!
作者: 艺多不压身丶    时间: 2015-3-30 15:49
学习新知识
作者: jiandonn    时间: 2015-3-30 16:37
顶一下、顶一下
作者: yh903450130    时间: 2015-3-30 16:42
终于等到阳哥更新了:#
作者: 强子    时间: 2015-3-30 16:50
震阳大神V5啊!{:3_47:}
作者: 冻了冬天    时间: 2015-3-30 18:23
这有些英文都不了解啊
作者: X-Sniper²º¹    时间: 2015-3-30 18:27
顶一下、顶一下
作者: 野马奔腾    时间: 2015-3-30 20:22
支持  支持
作者: 星河    时间: 2015-3-30 20:44
:)赞一下
作者: 大手牵小手    时间: 2015-3-30 21:15
存下了,表示赞!
作者: Fruious    时间: 2015-3-30 21:24
赞!非常好
作者: 唐杰    时间: 2015-3-30 21:24
大牛!黑马好技术!学习中!
作者: 千玉屑    时间: 2015-3-30 21:26
顶阳哥,来学习一下
作者: 唐杰    时间: 2015-3-30 21:29
大牛!黑马好技术!学习中!
作者: 天天是我呀    时间: 2015-3-30 21:31
好贴,支持啊
作者: yueyebingtong    时间: 2015-3-30 21:32
谢谢楼主,为进黑马努力!
作者: 王震阳老师    时间: 2015-3-30 21:40
上古丶 发表于 2015-3-30 14:50
顶一下、顶一下

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:41
toShareBeauty 发表于 2015-3-30 14:52
阳哥威武!好资料要共享!

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:41
郭文骄 发表于 2015-3-30 15:05
阳哥!棒棒哒

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:41
jiandonn 发表于 2015-3-30 16:37
顶一下、顶一下

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:41
yh903450130 发表于 2015-3-30 16:42
终于等到阳哥更新了

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:41
强子 发表于 2015-3-30 16:50
震阳大神V5啊!

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:43
X-Sniper²º¹ 发表于 2015-3-30 18:27
顶一下、顶一下

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:43
野马奔腾 发表于 2015-3-30 20:22
支持  支持

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:43
大手牵小手 发表于 2015-3-30 21:15
存下了,表示赞!

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:43
唐杰 发表于 2015-3-30 21:24
大牛!黑马好技术!学习中!

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:43
千玉屑 发表于 2015-3-30 21:26
顶阳哥,来学习一下

感谢支持。
作者: 王震阳老师    时间: 2015-3-30 21:44
yueyebingtong 发表于 2015-3-30 21:32
谢谢楼主,为进黑马努力!

感谢支持。加油。
作者: yihuyixi2    时间: 2015-3-30 21:54
膜拜阳哥 啊,顶起来
作者: 花独恋水    时间: 2015-3-30 22:19
支持一下,只是现在还看不太懂,小白
作者: luoyu1530    时间: 2015-3-30 22:38
好厉害,可惜看的不是很懂
作者: a1301155262    时间: 2015-3-30 23:01
膜拜大神
作者: longer    时间: 2015-3-30 23:31
赞一下:lol
作者: Dawn3    时间: 2015-3-30 23:45
学习 了,,,
作者: 冻了冬天    时间: 2015-3-30 23:57
冻了冬天 发表于 2015-3-30 18:23
这有些英文都不了解啊

现在每天上班呢,抽空就看看,死记硬背有时候真是好方法啊
作者: smartisan    时间: 2015-3-31 08:44
赞哦~~~~
作者: 天马行空_黑马    时间: 2015-3-31 09:21
以后用的上,赞一个!
作者: 小糊涂神    时间: 2015-3-31 10:16
学无止境 学海无涯!
作者: 王震阳老师    时间: 2015-3-31 11:02
冻了冬天 发表于 2015-3-30 23:57
现在每天上班呢,抽空就看看,死记硬背有时候真是好方法啊

先理解再记忆。
作者: SunshineCui    时间: 2015-3-31 21:27
表示看不懂。。。来学习下
作者: wwwlcy    时间: 2015-3-31 21:36
赞一下!!
作者: 邓士林    时间: 2015-3-31 23:12
赞一个,,
作者: 奔跑的孙莹    时间: 2015-3-31 23:25
阳哥 我来挺你了!
作者: 疯狂小小菜鸟    时间: 2015-4-1 09:05
犀利,可惜去不了
作者: leejun同学    时间: 2015-4-1 09:54
好吧、、、
作者: 王震阳老师    时间: 2015-4-1 10:57
奔跑的孙莹 发表于 2015-3-31 23:25
阳哥 我来挺你了!

感谢支持。
作者: mono    时间: 2015-4-1 11:37
好高端、
作者: 57xiaoyu    时间: 2015-4-1 13:45
:)              
作者: jc_cui2005    时间: 2015-4-1 15:04
飘过了,
作者: 自笃行者    时间: 2015-4-1 17:18
看下哈!!!!!
作者: boycechan    时间: 2015-4-1 17:48
老师给力啊,支持一下,哈哈!!
作者: li子文    时间: 2015-4-1 18:18
http://bbs.itheima.com/thread-182358-1-1.html
作者: 笔墨痕干    时间: 2015-4-1 19:49
这个学期开始学android,看看去!!!
作者: xj刘博    时间: 2015-4-1 20:21
支持,赞一下!!!
作者: a4230517    时间: 2015-4-1 20:41
赞一个……
作者: bankmycard    时间: 2015-4-1 21:05
我顶顶顶
作者: Mr.Kaizhei    时间: 2015-4-1 21:05
赞一个!!!!
作者: 没劲睡觉    时间: 2015-4-1 21:05
阳哥就是给力
作者: bankmycard    时间: 2015-4-1 21:06
我顶顶顶
作者: 天道    时间: 2015-4-1 21:08
顶起!!!!!!
作者: cspwan147    时间: 2015-4-1 21:10
存存存:D:D:D:D
作者: dsqqg    时间: 2015-4-1 21:11
happy!~~~new
作者: 唐杰    时间: 2015-4-1 21:15
很给力的帖子!
作者: 亚洲17    时间: 2015-4-1 21:16
飘过飘过~
作者: 天隙流光    时间: 2015-4-1 21:18
现在还看不懂,不过我会努力的
作者: Heart灬空城    时间: 2015-4-1 21:28
赞一个!
作者: 728121881    时间: 2015-4-1 21:33
好,继续努力。。。
作者: fankaiqiangnj    时间: 2015-4-1 21:35
签到,水贴
作者: 王震阳老师    时间: 2015-4-1 21:37
boycechan 发表于 2015-4-1 17:48
老师给力啊,支持一下,哈哈!!

感谢支持。
作者: 王震阳老师    时间: 2015-4-1 21:38
笔墨痕干 发表于 2015-4-1 19:49
这个学期开始学android,看看去!!!

加油。
作者: 缤纷落叶    时间: 2015-4-1 21:38
好强大!!!!!!!!!!!!!!!
作者: 熏陶    时间: 2015-4-1 21:40
北京与上海同在:victory:
作者: ROFFY    时间: 2015-4-1 21:46
顶一个!!!!!!!!
作者: fankaiqiangnj    时间: 2015-4-1 21:47
好帖药顶
作者: 栗子木头    时间: 2015-4-1 21:47
赞,赞,赞
作者: 小小的黑马    时间: 2015-4-1 21:56
赞一个!!!!!!!!!!!
作者: Hksangs    时间: 2015-4-1 21:57
顶顶顶~~~
作者: 朱闹闹    时间: 2015-4-1 22:32
赞一个。太开心了
作者: 随缘就好    时间: 2015-4-1 22:40
飘过飘过~
作者: 朱闹闹    时间: 2015-4-1 22:44
拜谢,阳哥。谢谢了

作者: 遗失陌上    时间: 2015-4-1 22:50
上海威武,顶一个
作者: 帆风顺    时间: 2015-4-1 23:17
来过来过,大赞!
作者: xiaotian741    时间: 2015-4-1 23:21
目前 我还看不懂  但是我会努力 成为其中一员的
作者: 18234133910    时间: 2015-4-1 23:25
上海出国机会多··
作者: 364785953    时间: 2015-4-1 23:49
睡觉前来看看
作者: wyk    时间: 2015-4-1 23:52
参考一下
作者: 丿天邪    时间: 2015-4-2 00:43
顶顶。。。
作者: 刘大志    时间: 2015-4-2 00:48
来思考是哪款是你

作者: hsl5430    时间: 2015-4-2 09:57
来学习咯~~~
作者: 12300123    时间: 2015-4-2 10:19
加油,我要去。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2