Android AudioRecord read总是返回-3(ERROR_INVALID_OPERATION)

Ala*_*ane 8 java android audiorecord

我已经尝试将代码简化为最低限度,但它仍然无效:

public class MainActivity extends AppCompatActivity {

AudioRecord rec;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rec=  new AudioRecord(MediaRecorder.AudioSource.MIC,44100, AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT,8192);

    short buff[] = new short[8192];
    int read = rec.read(buff,0,buff.length);
    System.out.print(read);
}
Run Code Online (Sandbox Code Playgroud)

无论如何,总是返回-3.我错过了什么?

Ala*_*ane 7

我和朋友一起设法解决了这个问题.您需要在调用read()之前调用AudioRecord.startRecording().完成后,您应该调用AudioRecord.stop().我想知道为什么要找到这条基本信息是如此困难