• Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频


    Android设备实现录制音频的简单demo

    转载请注明;

    http://blog.csdn.net/u013670933/article/details/26089487


    代码例如以下:

    public class MainActivity extends Activity {
    
    	File soundFile;//输出文件
    	MediaRecorder mRecorder;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	    inintView();//初始化
    	}
    	//初始化
    	private void inintView() {
    		mRecorder = new MediaRecorder();
    		//设置音频来源
    		mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    		//设置声音输出格式----一定要在编码格式之前设置
    		mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    		//设置声音的编码格式
    		mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    	}
    	//EventOfClick
    	public void onClick(View view){
    		switch(view.getId()){
    		case R.id.record:
    			try{
    			//设置保存音乐的文件
    				soundFile = new File(Environment
    						.getExternalStorageDirectory()
    						.getCanonicalFile()+"/sound.amr");
    				mRecorder.setOutputFile(soundFile.getAbsolutePath());
    				mRecorder.prepare();
    				//開始
    				mRecorder.start();
    			}catch(Exception e){
    				e.printStackTrace();
    			}
    			break;
    		case R.id.stop:
    			if(soundFile!=null && soundFile.exists()){       //避免未用到造成空指针
    				mRecorder.stop();
    				mRecorder.release();
    				mRecorder = null;
    			}
    			break;
    		default:
    			break;
    		}
    	}
    	//释放资源
    	@Override
    	protected void onDestroy() {
    		if(soundFile!=null && soundFile.exists()){
    			mRecorder.stop();
    			mRecorder.release();
    			mRecorder = null;
    		}
    		super.onDestroy();
    	}
    }
    

    布局文件仅有两个button,在此略过。

    权限设置:

    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    Demo演示样例代码:

    http://download.csdn.net/detail/u013670933/7362171


  • 相关阅读:
    Devexpress根据条件单元格变色以及根据条件设置单元格可编辑-记录
    批量更新事物加回滚
    批量更新
    Devexpress GridControl无限高度惹得祸
    C# 多语言国际化问题中的 CultureInfo
    配置linux服务器的防火墙,以CENTOS 为例(转载)
    关于Java的程序运行提醒
    用Eclipse跑Hadoop程序的注意事项
    Hadoop平台-错误收集附解决方案!
    unity3d之物体克隆
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3898015.html
Copyright © 2020-2023  润新知