0
的錯誤來這裏:由於Android 6.0 Audiorecord問題
mAudioRecord.startRecording();
檢查代碼:
private static int[] mSampleRates = new int[]{44100, 22050, 11025, 8000};
public AudioRecord findAudioRecord() {
for (int rate : mSampleRates) {
for (short audioFormat : new short[]{AudioFormat.ENCODING_PCM_8BIT, AudioFormat.ENCODING_PCM_16BIT}) {
for (short channelConfig : new short[]{AudioFormat.CHANNEL_IN_MONO, AudioFormat.CHANNEL_IN_STEREO}) {
try {
Log.d(TAG, "Attempting rate " + rate + "Hz, bits: " + audioFormat + ", channel: " + channelConfig);
int bufferSize = AudioRecord.getMinBufferSize(rate, channelConfig, audioFormat);
if (bufferSize != AudioRecord.ERROR_BAD_VALUE) {
// check if we can instantiate and have a success
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, rate, channelConfig, audioFormat, bufferSize);
if (recorder.getState() == AudioRecord.STATE_INITIALIZED) {
return recorder;
}
}
} catch (Exception e) {
Log.e(TAG, rate + "Exception, keep trying.", e);
}
}
}
}
return null;
}
的Errror:
05-27 16:44:16.371 16055-16254/modseven.shutup E/AudioRecord: AudioFlinger could not create record track, status: -1
05-27 16:44:16.381 16055-16254/modseven.shutup E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1.
05-27 16:44:16.381 16055-16254/modseven.shutup E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
05-27 16:44:16.381 16055-16254/modseven.shutup E/AndroidRuntime: FATAL EXCEPTION: Thread-1320
Process: modseven.shutup, PID: 16055
java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.
at android.media.AudioRecord.startRecording(AudioRecord.java:943)
at modseven.shutup.AudioRecorder$3.run(AudioRecorder.java:67)
at java.lang.Thread.run(Thread.java:818)
這似乎是由於Android 6.0。
我無法設法讓它工作了。它工作過! 我'也是用這個:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
我沒有改變的代碼什麼。它剛剛停止工作! 有什麼建議嗎?想法?
完美!謝謝! – MindCode