zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    一题多解(六)—— 一个数二进制形式 1 的个数
    心算技巧
    心算技巧
    位运算应用及其注意事项
    位运算应用及其注意事项
    辨异 —— 不同的编程语言(编译型语言、解释型语言、动态语言、静态语言)
    C#POP3协议实现SSL验证登陆GMAIL
    PB学习笔记(一)
    24点计算 --- 庞果
    JAVA网站高并发解决方案
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3898015.html
Copyright © 2011-2022 走看看