我已经阅读了很多关于Android的AudioRecorder的网页.您可以在问题下方看到它们的列表.
我正在尝试使用AudioRecorder录制音频,但效果不佳.
public class MainActivity extends Activity {
AudioRecord ar = null;
int buffsize = 0;
int blockSize = 256;
boolean isRecording = false;
private Thread recordingThread = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void baslat(View v)
{
// when click to START
buffsize = AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
ar = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, buffsize);
ar.startRecording();
isRecording = true;
recordingThread = new Thread(new Runnable() {
public void run() {
writeAudioDataToFile();
}
}, "AudioRecorder Thread"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 android 上录制语音通话。我正在使用 android 的 AudioRecord 类/api 来执行此操作。但是由于某种原因,AudioRecord 无法在某些设备上录制语音通话(尤其是在最新的 OS 6.0、7.0 中)。每当我将 AudioRecord 对象的 AudioSource 参数设置为“VOICE_CALL”即(MediaRecorder.AudioSource.VOICE_CALL)时,它都会给我这个异常
java.lang.IllegalStateException: startRecording() 在未初始化的 AudioRecord 上调用
但是当我将音频源设置为“MIC”时,它工作正常,但当然不会记录语音通话。
我尝试使用 android 的 MediaRecord 类,但遇到了同样的问题,即适用于“MIC”但缺乏“VOICE_CALL”。我也在多个论坛上尝试了许多可用的解决方案,但仍然没有运气。
下面我分享了我的一小段代码。对此的任何帮助将不胜感激。谢谢
recorder = new AudioRecord(MediaRecorder.AudioSource.VOICE_CALL,
44100, AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT, AudioRecord.getMinBufferSize(44100,AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT));
recorder.startRecording();
Run Code Online (Sandbox Code Playgroud) java android audiorecord android-mediarecorder call-recording