Android: микрофон AudioSource вызывает неподдерживаемый параметр, ошибки VerifyAndSetParameter - PullRequest
3 голосов
/ 28 января 2011

Этот вопрос также задавался на Проблемы с установкой класса аудио источника MediaRecorder - setAudioSource () - неподдерживаемый параметр , однако этот автор принял ответ, заявив, что это происходит только на эмуляторе, в то время как (для меня ) это не тот случай.

Проблема возникает на моем устройстве Galaxy S i9000. Устройство имеет микрофон и запись с микрофоном работает независимо от этой ошибки.

Следующий код воспроизводит эту ошибку (вызывается внутри службы):

int sampleRate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_SYSTEM);
int channelMode = AudioFormat.CHANNEL_IN_MONO;
int encodingMode = AudioFormat.ENCODING_PCM_16BIT; //only 16bit encoding is supported
int bufferSize = AudioRecord.getMinBufferSize(sampleRate, channelMode, encodingMode);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelMode, encodingMode, bufferSize);

Установка более низкой частоты дискретизации, например 8000, не решает проблему. Установка channelMode в стерео не решает проблему.

При выполнении этого кода в моем сервисе, когда микрофон доступен для использования, будут возвращены следующие ошибки:

01-28 14:50:14.860: ERROR/audio_input(2358): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
01-28 14:50:14.860: ERROR/audio_input(2358): VerifyAndSetParameter failed
01-28 14:50:15.246: ERROR/PVOMXEncNode(2358): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.SEC.amrenc handle 
01-28 14:50:15.258: ERROR/audio_input(2358): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
01-28 14:50:15.258: ERROR/audio_input(2358): VerifyAndSetParameter failed
01-28 14:50:15.328: ERROR/audio_input(2358): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
01-28 14:50:15.328: ERROR/audio_input(2358): VerifyAndSetParameter failed
01-28 14:50:15.356: ERROR/PVOMXEncNode(2358): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.SEC.amrenc handle 
01-28 14:50:15.359: ERROR/audio_input(2358): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
01-28 14:50:15.359: ERROR/audio_input(2358): VerifyAndSetParameter failed
01-28 14:50:15.367: ERROR/AudioHardwareALSA(2358): AudioStreamInALSA - input   - format = 1, channels = 16, rate = 44100
01-28 14:50:15.367: ERROR/AudioHardwareALSA(2358): AudioStreamInALSA - default - format = 1, channels = 16, rate = 44100
01-28 14:50:15.457: ERROR/AudioFlinger(2358): readInputParameters mInputBytes 8320, mFrameSize 2 mSampleRate 44100 mChannelCount(1)
01-28 14:50:15.457: ERROR/(2358): AFCCreateReSampler: avAFCInfo->bUsed[0] inSampleRate[44100] outSampleRate[44100] nChannel[1] outbitDepth[16]

У кого-нибудь есть решение этой проблемы?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

Сначала поместите это в свой файл манифеста:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Затем вы должны удалить приложение и установить его снова, чтобы получить разрешение.

1 голос
/ 18 апреля 2011

У меня была та же проблема, что и у вас.В моем случае оказалось, что SD-карта телефона установлена ​​на моем ПК в качестве USB-накопителя, когда я подключаю свой телефон Android к моей машине через USB.(из-за этого приложение не может получить доступ к файлу на SD-карте телефона)

Все работало нормально после отключения USB-накопителя на Xperia 10.

...