AudioFlinger无法创建记录轨迹,状态:-1错误创建AudioRecord实例:初始化校验失败,状态-1
问题描述:
我得到这个错误,当我试图在安卓6.0的设备上运行的代码AudioFlinger无法创建记录轨迹,状态:-1错误创建AudioRecord实例:初始化校验失败,状态-1
AudioFlinger不能创建记录轨道,状态:-1创建AudioRecord时出错 实例:初始化检查失败,状态为-1。
我有这样的代码,低版本的设备上工作良好
私人无效的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);//bufferSize);
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();
}
答
我假设你已经在manifest.xml中设定的<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
权限
在Android版本上,6.0音频被认为是“危险的”权限,因此您还需要在运行时通过添加代码来获得权限。关于此的说明:
https://developer.android.com/training/permissions/requesting.html