歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android簡單的利用MediaRecorder進行錄音

Android簡單的利用MediaRecorder進行錄音

日期:2017/3/1 10:51:42   编辑:Linux編程

MediaRecorder可以進行簡單的錄音,由於操作簡單所以可以用來進行基本的錄音。

下面提供一個簡單的例子,記得在Mainfest文件中添加權限。

代碼如下:

  1. package com.ppmeet;
  2. import java.io.IOException;
  3. import Android.app.Activity;
  4. import android.graphics.PixelFormat;
  5. import android.media.MediaRecorder;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.view.Window;
  10. import android.view.WindowManager;
  11. import android.widget.Button;
  12. /**
  13. * class name:TestBasicAudio<BR>
  14. * class description:Basic Record Audio Demo<BR>
  15. *
  16. * @version 1.00 2011/12/01
  17. * @author CODYY)peijiangping
  18. */
  19. public class TestBasicAudio extends Activity {
  20. private Button button_start;
  21. private Button button_stop;
  22. private MediaRecorder recorder;
  23. public void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. getWindow().setFormat(PixelFormat.TRANSLUCENT);// 讓界面橫屏
  26. requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面標題
  27. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  28. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  29. // 重新設置界面大小
  30. setContentView(R.layout.main);
  31. init();
  32. }
  33. private void init() {
  34. button_start = (Button) this.findViewById(R.id.start);
  35. button_stop = (Button) this.findViewById(R.id.stop);
  36. button_stop.setOnClickListener(new AudioListerner());
  37. button_start.setOnClickListener(new AudioListerner());
  38. }
  39. class AudioListerner implements OnClickListener {
  40. @Override
  41. public void onClick(View v) {
  42. if (v == button_start) {
  43. initializeAudio();
  44. }
  45. if (v == button_stop) {
  46. recorder.stop();// 停止刻錄
  47. // recorder.reset(); // 重新啟動MediaRecorder.
  48. recorder.release(); // 刻錄完成一定要釋放資源
  49. // recorder = null;
  50. }
  51. }
  52. private void initializeAudio() {
  53. recorder = new MediaRecorder();// new出MediaRecorder對象
  54. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  55. // 設置MediaRecorder的音��源為麥克風
  56. recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
  57. // 設置MediaRecorder錄制的音頻格式
  58. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  59. // 設置MediaRecorder錄制音頻的編碼為amr.貌似android就支持amr編碼。
  60. recorder.setOutputFile("/sdcard/peipei.amr");
  61. // 設置錄制好的音頻文件保存路徑
  62. try {
  63. recorder.prepare();// 准備錄制
  64. recorder.start();// 開始錄制
  65. } catch (IllegalStateException e) {
  66. e.printStackTrace();
  67. } catch (IOException e) {
  68. e.printStackTrace();
  69. }
  70. }
  71. }
  72. }
AndroidMainfest.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.ppmeet"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk android:minSdkVersion="8" />
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name" >
  10. <activity
  11. android:name=".TestBasicAudio"
  12. android:screenOrientation="landscape" >
  13. <intent-filter >
  14. <action android:name="android.intent.action.MAIN" />
  15. <category android:name="android.intent.category.LAUNCHER" />
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. <!-- 聯網權限 -->
  20. <uses-permission android:name="android.permission.INTERNET" />
  21. <!-- 往SDCard寫入數據權限 -->
  22. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  23. <!-- 錄音權限 -->
  24. <uses-permission android:name="android.permission.RECORD_AUDIO" />
  25. <!-- 在SDCard中創建與刪除文件權限 -->
  26. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
  27. </manifest>
Copyright © Linux教程網 All Rights Reserved