Android录音,和实现微信长按录音效果!
16lz
2021-12-04
Android录音,和实现微信长按录音效果!
分类:Android 2012-12-24 01:59 248人阅读 评论(0) 收藏 举报
录音源码!
- packagecn.com.chenzheng_java.media;
- importjava.io.IOException;
- importandroid.app.Activity;
- importandroid.media.MediaRecorder;
- importandroid.os.Bundle;
- /**
- *@description对通过android系统手机进行录音的一点说明测试
- *@authorchenzheng_java
- *@since2011/03/23
- */
- publicclassMediaRecordActivityextendsActivity{
- MediaRecordermediaRecorder;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mediaRecorder=newMediaRecorder();
- record();
- }
- /**
- *开始录制
- */
- privatevoidrecord(){
- /**
- *mediaRecorder.setAudioSource设置声音来源。
- *MediaRecorder.AudioSource这个内部类详细的介绍了声音来源。
- *该类中有许多音频来源,不过最主要使用的还是手机上的麦克风,MediaRecorder.AudioSource.MIC
- */
- mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
- /**
- *mediaRecorder.setOutputFormat代表输出文件的格式。该语句必须在setAudioSource之后,在prepare之前。
- *OutputFormat内部类,定义了音频输出的格式,主要包含MPEG_4、THREE_GPP、RAW_AMR……等。
- */
- mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
- /**
- *mediaRecorder.setAddioEncoder()方法可以设置音频的编码
- *AudioEncoder内部类详细定义了两种编码:AudioEncoder.DEFAULT、AudioEncoder.AMR_NB
- */
- mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
- /**
- *设置录音之后,保存音频文件的位置
- */
- mediaRecorder.setOutputFile("file:///sdcard/myvido/a.3pg");
- /**
- *调用start开始录音之前,一定要调用prepare方法。
- */
- try{
- mediaRecorder.prepare();
- mediaRecorder.start();
- }catch(IllegalStateExceptione){
- e.printStackTrace();
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- /***
- *此外,还有和MediaRecorder有关的几个参数与方法,我们一起来看一下:
- *sampleRateInHz:音频的采样频率,每秒钟能够采样的次数,采样率越高,音质越高。
- *给出的实例是44100、22050、11025但不限于这几个参数。例如要采集低质量的音频就可以使用4000、8000等低采样率
- *
- *channelConfig:声道设置:android支持双声道立体声和单声道。MONO单声道,STEREO立体声
- *
- *recorder.stop();停止录音
- *recorder.reset();重置录音,会重置到setAudioSource这一步
- *recorder.release();解除对录音资源的占用
- */
- }
相关的权限
[html] view plain copy- <uses-permissionandroid:name="android.permission.RECORD_AUDIO"></uses-permission>
微信效果
boolean isLongClick=false;
imageButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
MainActivity.this.flag = "talk";
MainActivity.this.setImageButtonBackground();
System.out.println("长按。。。。。。。。。。。");
isLongClick=true;
//开始录音
return true;
}
});
imageButton.setOnTouchListener(new MyClickListener());
class MyClickListener implements OnTouchListener{
public boolean onTouch(View v, MotionEvent event) {
if(isLongClick)
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
flag = "listen";
setImageButtonBackground();
System.out.println("抬起。。。。。。。。。。。。。。。。");
isLongClick=false;
break;
default:
break;
}
return false;
}
}
更多相关文章
- Android中Handler引起的内存泄露
- android Handler使用
- Android中如何判断内存卡是否存在
- android的四种点击事件的设置
- 【android】通话录音 -- service
- android实现电话录音
- android 音频framework的分析
- Android(安卓)AudioRecord录音实现
- Android多媒体开发高级编程