zoukankan      html  css  js  c++  java
  • android 录音

    android录音这是也是很平常的一件事 特别是那种社交app用的多

    接下来就说一个dome 算是复习了把

    先看下录音的架构图把

    我想上面的图应该可以看懂把 

    我先说下我做的app的效果图把

    点击停止会保存到sd卡上

    直接看java代码把

    public class MainActivity extends Activity {
    
    	private TextView tv;
    	private MediaRecorder mr;
    	private Timer timer;
    	private TimerTask task;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		tv = (TextView) findViewById(R.id.tv);
    		mr = new MediaRecorder();
    		
    		timer = new Timer();
    		task = new TimerTask() {
    			
    			@Override
    			public void run() {
    				//使用handler
    				handler.sendEmptyMessage(0);
    			}
    		};
    	}
    	int t = 0;
    	//使用 Handler 修改进度
    	Handler handler = new Handler(){
    		public void handleMessage(android.os.Message msg) {
    			switch (msg.what) {
    			case 0:
    				//更新时间
    				tv.setText("录音的时间: "+(t++));
    				break;
    			}
    		};
    	};
    	
    	public void l(View v){
    		try {
    			//设置音频资源 麦克风
    			mr.setAudioSource(AudioSource.MIC);
    			//设置输出格式
    			mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    			//设置录音格式
    			mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    			//设置输出路径
    			mr.setOutputFile("/mnt/sdcard/ab.mp3");
    			//准备
    			mr.prepare();
    			//开始
    			mr.start();
    			//更新进度
    			timer.schedule(task, 0, 1000);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}		
    	}
    	
    	public void t(View v){
    		//
    		mr.stop();
    		mr.reset();
    		mr.release();
    		//
    		timer.cancel();
    		Toast.makeText(this, "录音文件保存成功", 1000).show();
    	}
    }
    

      这里需要注意的是 需要加入权限

        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  • 相关阅读:
    iOS 成员变量,实例变量,属性变量的区别,联系
    iOS类别(category)不能添加成员变量但是可以添加属性的问题
    iOS缓存机制详解
    ios数据缓存方法
    仿360圆圈自动隐藏效果
    html 背景透明文字不透明
    netty
    关注网站
    关注URL
    DNS之XX记录
  • 原文地址:https://www.cnblogs.com/Striver-zw/p/4193734.html
Copyright © 2011-2022 走看看