[Android开发学习] day07 & day08

界面跳转后内容回调 or
内容回传

前一个界面给后一个界面传递消息

让跳转的intent携带参数:

1.  在第一个界面:intent封装数据

it.putExtra("msg",
"吧啦啦啦");

2.在第二个界面取出数据

//取出数据方法:保证是获取前一界面的同一个it对象。

Intent it=getIntent();

//取出数据

String msg=it.getStringExtra("msg");

//标签的赋值————字符串数据

mTextView.setText(msg);

携带数据返回前一个页面

1.  在第一个界面设置启动方法的改变:

startActivityForResult(Intent, requestCode);

Intent:意图

requestCode:请求码,必须大于0

2.  在第二个页面设置返回结果的方法

setResult(resultCode, data)

resultCode:返回码

data:封装数据的意图。

3.  关闭第二界面

finish();

4.  在第一界面重写onActivityResult方法

//判断返回码,请求码是否匹配,如果匹配,取出数据

if(requestCode==10&&resultCode==1){

String content=data.getStringExtra("second");

//绑定数据给组件显示

mGetTx.setText(content);

}

5.  第二界面意图intent获取不能在成员变量位置完成。

照片回传

ChoosePicture

Day 08

多媒体音频与视频录制

MediaRecorder

MediaRecorder对象

各状态解释如下:

Idle
—空闲状态

当使用new语句创建一个MediaRecorder对象或者调用了其reset()方法时,该MediaRecorder对象处于Idle状态。

在其他状态下调用reset()方法,可以使得MediaRecorder对象重新回到Idle状态,以达到再使用MediaRecorder对象的目的。

Initialized
—已初始状态

调用setVideoSource()或者setAudioSource()后,MediaRecorder将进入initialized状态。

至于到底录制音频还是视频,取决于调用哪个方法。对于音频录制,系统支持从麦克风或电话两个音频源录制数据。

Preparing
—准备中状态

在调用setOutputFormat()方法指定录制输出格式后,MediaRecorder将进入Preparing状态。

在Preparing状态下,MediaRecorder还需要设置编码格式、文件数据路径等信息。

Prepared — 已准备状态

在Preparing状态下调用prepare()方法,MediaRecorder对象将进入prepared状态,表明录制前的准备工作已经就绪。

Recording
—录制状态

调用start()方法,MediaRecorder进入录制状态,录制可能需要一段时间,这时候MediaRecorder一直处于录制状态。

调用stop()方法,MediaRecorder将停止录制,并将录制内容输出到指定文件,然后回到 Idle状态。

Released
—释放状态

MediaRecorder会占用音频和视频硬件资源,因此当不再需要时,应该调用release()方法销毁MediaRecorder对象,以释放资源。

Error
—错误状态

如果由于某种原因出现了错误, MediaRecorder将进入Error状态,并触发错误事件,调用OnErrorListener的onError()方法(如果提供的话)。

MediaRecorder还定义了OnInfoListener嵌套接口来监听录制过程中的错误信息。

例如,当录制的时间长度达到最大限制或者录制文件的大小达到了最大文件限制时,系统会回调已经注册的OnInfoListener接口的onInfo()方法。

与MediaPlayer相比, MediaRecorder的状态相对简单。应合理控制该对象的状态,才能保证录制程序的正确运行。

音频录制程序的框架代码

初始化Mediarecorder对象

1.  MediaRecorder recorder = new MediaRecorder();

设置音频来源

2.  recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

设置音频输出格式

3.  recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

设置音频编码格式

4.  recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

设置输出文件路径:保存到sdcard

5.  recorder.setOutputFile(PATH_NAME);

准备

6.  recorder.prepare();

开始录制

7.  recorder.start();

//录制中……

8.  recorder.stop();

停止

9.  recorder.reset();

重置

10.recorder.release();

释放资源

时间: 2024-11-04 11:08:31

[Android开发学习] day07 & day08的相关文章

[Android开发学习] day07 & day08

界面跳转后内容回调 or 内容回传 前一个界面给后一个界面传递消息 让跳转的intent携带參数: 1.  在第一个界面:intent封装数据 it.putExtra("msg", "吧啦啦啦"); 2.在第二个界面取出数据 //取出数据方法:保证是获取前一界面的同一个it对象. Intent it=getIntent(); //取出数据 String msg=it.getStringExtra("msg"); //标签的赋值----字符串数据

Android开发学习之路--网络编程之xml、json

一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载xampp,然后安装之类的就不再多讲了,参考http://cnbin.github.io/blog/2015/06/05/mac-an-zhuang-he-shi-yong-xampp/.安装好后,启动xampp,之后在浏览器输入localhost或者127.0.0.1就可以看到如下所示了: 这个就

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

Android开发学习---使用Intelij idea 13.1 进行android 开发

原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比Intelij idea好用,就试下,目前还在test阶段,总之是各种不习惯,很多快捷键之类的跟eclipse完全不一样.还要多熟悉! 另外android studio 也比较卡,而且用起来相当难受,完全是intelij 的

【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

android 开发学习笔记 (一)

每个app 都有一个自己的 linux 进程: 每个进程都在自己的虚拟机里执行 两个app 可以跑在一个进程,一个vm里 android app 四大组件:activity,content provider,      services, broardcast receivers Content Resolver 激活 Content Provider You can start an      activity (or give it something new to do) by passi

Android开发学习---template requires a minimum SDK version of at least 7,build target API version of 14

adt 22.6.3的bug 当adt更新到22.6.3,其编辑器中最低支持api7,即android 2.1,这里可能是google故意这么做的,也可能是其bug.其target sdk 和compile sdk最低都为14,即anroid 4.0,这里建议都设为最高的api 19,即android 4.4;否则会一直报错,类似错误如下: This template requires a minimum SDK version of at least 7, and the current mi

android开发学习之路——连连看之游戏逻辑(五)

GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖,程序需要GameService组件包含如下方法.   ·start():初始化游戏状态,开始游戏的方法.     ·Piece[][] getPieces():返回表示游戏状态的Piece[][]数组.     ·boolean hasPieces():判断Pieces[][]数组中是否还剩Piec

Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/files/LoginTest.txt------/data/data/(包名)/files/(文件名) 导出的文件内容: 三.实现代码 新建一个Android 工程.这里我选择的是2.1即API 7,进行开发的,其它都是默认下一步下一步即可. /datasave/res/layout/activity