上篇文章我们介绍了音频输出(音乐播放),本文将介绍音频的录音即输入,文章中代码坏境Android 4.4
音频输入类:
MediaRecorder
AudioRecord
首先录制音频需要在 AndroidManifest.xml 中加入权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
1、MediaRecorder
MediaRecorder是Android 提供媒体文件录制的类,可以录制视频和音频,我们这主要的是录制音频,下面先看一段录音的代码:
package com.example.framework;
import java.io.File;
import android.app.Activity;
import android.media.MediaRecorder;
import android.media.MediaRecorder.AudioEncoder;
import android.media.MediaRecorder.AudioSource;
import android.media.MediaRecorder.OutputFormat;
import android.os.Bundle;
public class MediaRecorderActivity extends Activity {
private MediaRecorder mRediaRecorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
String path = new File(getCacheDir(), "audio.mp4").getAbsolutePath();
mRediaRecorder = new MediaRecorder();
mRediaRecorder.setAudioChannels(2);
mRediaRecorder.setAudioSource(AudioSource.MIC);
mRediaRecorder.setAudioSamplingRate(44100);
mRediaRecorder.setOutputFormat(OutputFormat.MPEG_4);
mRediaRecorder.setOutputFile(path);
mRediaRecorder.setAudioEncoder(AudioEncoder.DEFAULT);
mRediaRecorder.prepare();
mRediaRecorder.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mRediaRecorder != null) {
mRediaRecorder.stop();
mRediaRecorder.release();
}
}
}
参数说明:
AudioChannels
声道,Android中取值范围:1或者2,1代表单声道,2代表双声道(立体声)
AudioSource
音频源,Android中已经定义好常量,android.media.MediaRecorder.AudioSource 类
public final class AudioSource {
private AudioSource() {}
/** Default audio source **/
public static final int DEFAULT = 0;
/** Microphone audio source */
public static final int MIC = 1;
/** Voice call uplink