• 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年下来没有继续挖掘技术,造成技术非常差。

    要努力了!!

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


  • 相关阅读:
    hdu1209(Clock)
    [NodeJS]使用Node.js写一个简单的在线聊天室
    UVa 11168 Airport , 凸包
    【数据结构与算法】(二) c 语言链表的简单操作
    Struts简单介绍
    bzoj3931【CQOI2015】网络吞吐量
    python爬虫解决百度贴吧登陆验证码问题
    TNS-01251: Cannot set trace/log directory under ADR
    Oracle 监听器日志文件过大导致监听异常
    RHEL7
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8902817.html
Copyright © 2020-2023  润新知