zoukankan      html  css  js  c++  java
  • Android实现录音的方法(最重要的是对MediaRecorder的试用方法)

    package cn.eoe.record;
    
    import java.io.File;
    import java.io.IOException;
    
    import android.app.Activity;
    import android.media.MediaRecorder;
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class MainActivity extends Activity {
    
    	private OnClickListener btnClickListener = new OnClickListener() {
    		@Override
    		public void onClick(View v) {
    
    			switch (v.getId()) {
    				case R.id.btnStartRecord :
    					startRecord();
    					break;
    				case R.id.btnStopRecord :
    					stopRecord();
    					break;
    			}
    
    		}
    	};
    
    	private void startRecord() {
    		if (mp == null) {
    			File dir = new File(Environment.getExternalStorageDirectory(), "sounds");
    			if (!dir.exists()) {
    				dir.mkdirs();
    			}
    			File soundFile = new File(dir, System.currentTimeMillis() + ".amr");
    			if (!soundFile.exists()) {
    				try {
    					soundFile.createNewFile();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			mp = new MediaRecorder();
    			mp.setAudioSource(MediaRecorder.AudioSource.MIC);
    			mp.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    			mp.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    			mp.setOutputFile(soundFile.getAbsolutePath());
    			try {
    				mp.prepare();
    				mp.start();
    			} catch (IllegalStateException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	private void stopRecord() {
    		if (mp != null) {
    			mp.stop();
    			mp.release();
    			mp = null;
    		}
    	}
    
    	private MediaRecorder mp = null;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		findViewById(R.id.btnStartRecord).setOnClickListener(btnClickListener);
    		findViewById(R.id.btnStopRecord).setOnClickListener(btnClickListener);
    	}
    }
    

    最最重要的是对MediaRecorder的操作。怎么去释放啊。怎么去初始化,然后就能够播放了,事实上非常easy。

    关键性代码在这里:

    	mp = new MediaRecorder();
    			mp.setAudioSource(MediaRecorder.AudioSource.MIC);
    			mp.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    			mp.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    			mp.setOutputFile(soundFile.getAbsolutePath());

    最后停止录音那段。就须要直接停止就能够了。释放掉MediaRecorder()这个对象。释放成空的。


    先Stop,然后Release(),然后值为空。

    最新感言:技术这东西,须要不断的学习,不断的努力!

    不要停止。唯有科学技术是第一生产力。这2年下来没有继续挖掘技术,造成技术非常差。

    要努力了!!

    技术不怎么行,被领导谈话了几次,深深的加深了我对自己的思考。我不能停止努力,加油才是硬道理!!!!


  • 相关阅读:
    解决拼团首页swiper组件手动轮播卡顿问题
    mac上charels抓包工具使用技巧
    加载图片优化(先用一张小图片做高斯模糊, 再加载大图)
    requirejs2读书笔记
    escape encodeURI encodeURIComponent区别
    js与cookie的domain和path之间的关系
    Oracle使用——数据泵导入导出数据库——impdp/expdp使用
    Oracle基础知识点——Oracle服务端和客户端
    Oracle使用——oracle11g安装——Oracle要求的结果: 5.0,5.1,5.2,6.0 6.1 之一 实际结果: 6.2
    Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8902817.html
Copyright © 2011-2022 走看看