如何在android上录制音频

Leo*_*axo 7 java android android-audiorecord wear-os

有一些方法可以在Android上录制音频吗?我使用了AudioRecord API,它崩溃了应用程序.

难道我做错了什么?

        short[] audioData = new short[minBufferSize];

        AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                11025,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT,
                minBufferSize);

        audioRecord.startRecording();

        while(recording){
            int numberOfShort = audioRecord.read(audioData, 0, minBufferSize);
            for(int i = 0; i < numberOfShort; i++){
                dataOutputStream.writeShort(audioData[i]);
            }
        }

        audioRecord.stop();
Run Code Online (Sandbox Code Playgroud)

Bre*_*ntM 6

支持AudioRecord,适用于Android Wear.如果您在仿真器上进行测试,则可能不支持您提供的采样率,11025,请尝试另一个例如8000.

在构建AudioRecord之后,您应该在尝试记录之前检查状态以确认初始化是否成功.

audioRecord.getState() == AudioRecord.STATE_INITIALIZED
Run Code Online (Sandbox Code Playgroud)

还要确保您在清单中拥有正确的权限.您将需要android.permission.RECORD_AUDIO作为最低要求以及您正在编写该文件的位置的任何权限.

  • 我忘了在清单中放置音频权限.现在它有效,谢谢. (2认同)