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

    MediaRecorder类具体解释


    移动电话通常具有一个麦克风和照相机,和Android该系统将能够利用这些硬件的优点来记录的音频和视频。
    添加支持的音频和视频录制,Android该系统提供了MediaRecorder的类。该类的使用也很easy。以下让我们来了解一下这个类

    一、结构

    java.lang.Object->android.media.MediaRecorder


    二、类概述:

    用于录制音频和视频的一个类。

    三、状态图:





    说明:


    与MediaPlayer类很相似MediaRecorder也有它自己的状态图。

    以下是关于MediaRecorder的各个状态的介绍:


    1、Initial:初始状态,当使用new()方法创建一个MediaRecorder对象或者调用了reset()方法时,该MediaRecorder对象处于Initial状态。

    在设定视频源或者音频源之后将转换为Initialized状态。另外,在除Released状态外的其他状态通过调用reset()方法都能够使MediaRecorder进入该状态。




    2、Initialized:已初始化状态,能够通过在Initial状态调用setAudioSource()或setVideoSource()方法进入该状态。在这个状态能够通过setOutputFormat()方法设置输出格式。此时MediaRecorder转换为DataSourceConfigured状态。另外,通过reset()方法进入Initial状态。




    3、DataSourceConfigured:数据源配置状态,这期间能够设定编码方式、输出文件、屏幕旋转、预览显示等等。

    能够在Initialized状态通过setOutputFormat()方法进入该状态。

    另外,能够通过reset()方法回到Initial状态。或者通过prepare()方法到达Prepared状态。




    4、Prepared:就绪状态,在DataSourceConfigured状态通过prepare()方法进入该状态。

    在这个状态能够通过start()进入录制状态。另外,能够通过reset()方法回到Initialized状态。


    5、Recording:录制状态,能够在Prepared状态通过调用start()方法进入该状态。另外,它能够通过stop()方法或reset()方法回到Initial状态。




    6、Released:释放状态(官方文档给出的词叫做Idle state 空暇状态),能够通过在Initial状态调用release()方法来进入这个状态,这时将会释放全部和MediaRecorder对象绑定的资源。


    7、Error:错误状态。当发生错误的时候进入这个状态,它能够通过reset()方法进入Initial状态。


    提示:与MediaPlayer相似使用MediaRecorder录音录像时须要严格遵守状态图说明中的函数调用先后顺序,在不同的状态调用不同的函数,否则会出现异常。


    以下一个实例代码描写叙述了的创建过程:


    /**
    	 * 開始录音
    	 */
    	private void startRecording() 
    	{
    		BaseUtils.printd(TAG, "startRecording");
    		mParams.mFileName = mParams.mFileDir + System.currentTimeMillis() + "amr";
    		mRecorder = new MediaRecorder();
    		mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    		mRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
    		mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    		mRecorder.setOutputFile(mParams.mFileName);
    		mRecorder.setOnInfoListener(mRecorderOnInfoListener);
    		
    		if(mParams.mMaxFileSize > 0)
    		{
    			mRecorder.setMaxFileSize(mParams.mMaxFileSize);
    		}
    		
    		if(mParams.mMaxDurationSize > 0)
    		{
    			mRecorder.setMaxDuration(mParams.mMaxDurationSize);
    		}
    		
    		try 
    		{
    			mRecorder.prepare();
    			
    			mRecorder.start();
    			mObtainDecibelThread = new ObtainDecibelThread();
    			mObtainDecibelThread.start();
    		} 
    		catch (Exception e) 
    		{
    			BaseUtils.printe("Exception", "Exception:" + e);
    		}
    
    		
    
    	}



    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4649242.html
Copyright © 2011-2022 走看看