android之通過MediaRecorder進行手機錄音

來源:互聯網
上載者:User

直接給上個詳細的解說代碼:

package cn.com.chenzheng_java.media;</p><p>import java.io.IOException;</p><p>import android.app.Activity;<br />import android.media.MediaRecorder;<br />import android.os.Bundle;<br />/**<br /> * @description 對通過android系統手機進行錄音的一點說明測試<br /> * @author chenzheng_java<br /> * @since 2011/03/23<br /> */<br />public class MediaRecordActivity extends Activity {</p><p>MediaRecorder mediaRecorder ;<br />@Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);</p><p> mediaRecorder = new MediaRecorder();<br /> record();</p><p> }</p><p>/**<br /> * 開始錄製<br /> */<br /> private void record(){<br /> /**<br /> * mediaRecorder.setAudioSource設定聲音來源。<br /> * MediaRecorder.AudioSource這個內部類詳細的介紹了聲音來源。<br /> * 該類中有許多音頻來源,不過最主要使用的還是手機上的麥克風,MediaRecorder.AudioSource.MIC<br /> */<br /> mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);<br /> /**<br /> * mediaRecorder.setOutputFormat代表輸出檔案的格式。該語句必須在setAudioSource之後,在prepare之前。<br /> * OutputFormat內部類,定義了音訊輸出的格式,主要包含MPEG_4、THREE_GPP、RAW_AMR……等。<br /> */<br /> mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);<br /> /**<br /> * mediaRecorder.setAddioEncoder()方法可以設定音訊編碼<br /> * AudioEncoder內部類詳細定義了兩種編碼:AudioEncoder.DEFAULT、AudioEncoder.AMR_NB<br /> */<br /> mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);<br /> /**<br /> * 設定錄音之後,儲存音頻檔案的位置<br /> */<br /> mediaRecorder.setOutputFile("file:///sdcard/myvido/a.3pg");</p><p> /**<br /> * 調用start開始錄音之前,一定要調用prepare方法。<br /> */<br /> try {<br />mediaRecorder.prepare();<br />mediaRecorder.start();<br />} catch (IllegalStateException e) {<br />e.printStackTrace();<br />} catch (IOException e) {<br />e.printStackTrace();<br />}</p><p> }</p><p> /***<br /> * 此外,還有和MediaRecorder有關的幾個參數與方法,我們一起來看一下:<br /> * sampleRateInHz :音訊採樣頻率,每秒鐘能夠採樣的次數,採樣率越高,音質越高。<br /> * 給出的執行個體是44100、22050、11025但不限於這幾個參數。例如要採集低品質的音頻就可以使用4000、8000等低採樣率<br /> *<br /> * channelConfig :聲道設定:android支援雙聲道立體聲和單聲道。MONO單聲道,STEREO立體聲<br /> *<br /> * recorder.stop();停止錄音<br /> * recorder.reset(); 重設錄音 ,會重設到setAudioSource這一步<br /> * recorder.release(); 解除對錄音資源的佔用<br /> */</p><p>} 

這裡,一定要注意一點,那就是如果我們想要錄音的話,那麼首先得添加錄音許可權到AndroidManiferst.xml中:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.