2014-12-11 3 views
0

Есть ли способ проверить, что микрофон на телефоне Android что-либо записывает? Я ничего не нашел в AudioRecorder.
Update:Программно проверить, работает ли микрофон на Android в данный момент

int sampleRateInHz = 8000;//8000 44100, 22050 and 11025 
int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO; 
int audioFormat = AudioFormat.ENCODING_PCM_16BIT; 
int bufferSize = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat); 


public int getRecordingState() { 
    AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, sampleRateInHz, channelConfig, audioFormat, bufferSize); 
    return audioRecord.getRecordingState(); 
} 
+0

Возможный дубликат: http://stackoverflow.com/questions/22677749/ How-to-Check-if-android-microphone-is-available-for-use –

+0

Я уже пробовал это. Он всегда возвращает true ... –

ответ

0

Я видел целый ряд вещей, которые вы могли бы попробовать. От AudioRecord - getRecordingState() - Возвращает состояние записи экземпляра AudioRecord.

Или вы можете попробовать: read(byte[], int, int), read(short[], int, int) или read(ByteBuffer, int) методы для определения роста буферов.

Edit: Вот некоторые примеры того, как прочитать буфер и объяснение:

Understanding of the Audio Recorder read() buffer

Android AudioRecord example

+0

Итак, я написал метод (см. Обновление, пожалуйста). Не похоже на работу. Он всегда возвращает 1, т. Е. Int RECORDSTATE_STOPPED ... –

+0

Как насчет чтения буфера? –

+0

Я действительно не знаю, как это сделать ... –

Смежные вопросы