android - AudioFlinger 无法创建记录轨道,状态 : -1 Error creating AudioRecord instance: initialization check failed with status -1

标签 android audio-recording android-audiorecord

当我尝试在 android 6.0 设备上运行代码时出现此错误

AudioFlinger 无法创建记录轨道,状态:-1 创建 AudioRecord 时出错
实例:初始化检查失败,状态为 -1。


我有这段代码在较低版本的设备上运行良好

private void startRecording()
{
    bufferSize = AudioRecord.getMinBufferSize(11025,
        AudioFormat.CHANNEL_CONFIGURATION_MONO,
        AudioFormat.ENCODING_PCM_16BIT);

    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
        11025, AudioFormat.CHANNEL_CONFIGURATION_MONO,
        RECORDER_AUDIO_ENCODING, 1024);

    int i = recorder.getState();

    if (i==1)
    {
        recorder.startRecording();
        ShowToast("Recording started successfully");
    }

    isRecording = true;

    recordingThread = new Thread(new Runnable()
    {
        @Override
        public void run() 
        {
            writeAudioDataToFile();
        }
    }, "AudioRecorder Thread");

    recordingThread.start();
}

最佳答案

我假设你已经设置了 <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> manifest.xml 中的权限

在 Android 版本 > 6.0 上,音频被视为“危险”权限,因此您还需要在运行时通过添加代码来请求权限。相关说明如下:

https://developer.android.com/training/permissions/requesting.html

关于android - AudioFlinger 无法创建记录轨道,状态 : -1 Error creating AudioRecord instance: initialization check failed with status -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650076/

相关文章:

android - 如何为 android ndk 安装 libiconv?

android - 尝试使用 Activity 的 EditText 中的字符串作为记录 Activity 的文件名

android - 读取的AudioRecord返回奇怪的值

android-asynctask - android中的拍手声音检测

android - Android 媒体录音机需要多少放大系数才能匹配 iOS AVAudioRecorder 的输出?

java - 在Android中录制.wav文件

android - 在 build.gradle 中编译选择性模块

Android Intent.createChooser 不适用于 Intent.ACTION_SEND

android - 2013年哪款安卓手机最适合开发

c++ - Directshow 渲染流 "the parameter is incorrect"