界面跳转后内容回调 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();
释放资源