У меня есть код приложения звуковой записи, основанный на состоянии микрофона. Я хочу отобразить такой статус, как: если микрофон уже используется каким-либо другим приложением, для отображения статуса, как микрофон, уже используется для записи другого типа ... поэтому я использовал приведенный ниже код, чтобы получить состояние микрофона в рекордере. getRecordingState(), но он всегда возвращает 1, даже если я нахожусь в режиме ожидания или в режиме ожидания. Помогите мне получить код, чтобы получить состояние микрофона. Заранее спасибо.Android - Как проверить микрофон в настоящее время используется каким-либо другим приложением
int[] mSampleRates = new int[]{8000, 11025, 22050, 44100};
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) {
Log.i("", "Recorder intialised " + recorder.getRecordingState() + " " + recorder.getState() + " ");
return recorder;
}
}
} catch (Exception e) {
Log.e(TAG, rate + "Exception, keep trying.", e);
}
}
}
}
return null;
Посмотрите в эту http://stackoverflow.com/questions/12018927/check-if-android-mic-is-being-used-by-another-app – Sunny
Благодаря солнечно, я не имею представления о HAL, Не могли бы вы помочь мне получить статус с уровня приложения – user2750213