当我尝试在 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/