Android AudioRecord初始化失败
问题描述:
我正在为Android创建应用程序,听电话。问题是初始化失败。Android AudioRecord初始化失败
我的日志:
E/AudioRecord﹕ Could not get audio input for record source 3
E/AudioRecord-JNI﹕ Error creating AudioRecord instance: initialization check failed.
E/android.media.AudioRecord﹕ Error code -20 when initializing native AudioRecord object.
我的代码:
public AudioRecord recorder;
private int sampleRate = 16000;
private int channelConfig = AudioFormat.CHANNEL_IN_MONO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
recorder = new AudioRecord(MediaRecorder.AudioSource.VOICE_DOWNLINK, sampleRate, channelConfig, audioFormat, minBufSize * 10);
recorder.startRecording();
编辑: 我只想下行
答
,您应该使用AudioRecord的MediaRecorder instade, 听到的是备案一例音频并保存在您的SD卡中。
MediaRecorder myAudioRecorder;
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.3gp";
myAudioRecorder=new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);
你可以开始录制按钮点击事件中使用下面的代码
try {
myAudioRecorder.prepare();
myAudioRecorder.start();
}
catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
我不想将它保存到文件中。 – koca2000
尝试使用其他配置(例如8000赫兹,而不是16000赫兹)。您也可以尝试使用'VOICE_CALL'作为音源,而不是'VOICE_DOWNLINK'。这也会给你上行链路,但是你正在测试的设备可能不支持只记录下行链路,因为语音通话记录是一个特定于平台的功能。 – Michael