Я пытаюсь разработать приложение Audio Capture, используя AudioRecord
класс из Android API, настройка, как аудио источник
MediaRecorder.AudioSource.MIC, приложение работает, но когда я пытаюсь использовать
эхоподавление, настройка
MediaRecorder.AudioSource.VOICE_COMMUNICATION как источник, когда объект AudioRecorder
создано, генерируется исключение IllegalArgumentException, но я не знаю почему:
Мой код:
private static final int SAMPLE_RATE = 16000;
private static final int BIT_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private static final int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private int m_i32BufferSize;
private AudioRecord m_AudioRecorder;
public caudioCapture ()
{
super ();
m_i32BufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_CONFIGURATION, BIT_ENCODING);
//Create audio recorder object
try
{
m_AudioRecorder = new AudioRecord (MediaRecorder.AudioSource.VOICE_COMMUNICATION,SAMPLE_RATE,CHANNEL_CONFIGURATION,BIT_ENCODING,m_i32BufferSize);
}
catch (IllegalArgumentException e)
{
throw new IllegalArgumentException("Bad arguments on AudioRecorder creation", e);
}
В моем манифесте Android есть:
использует разрешение android: name = "android.permission.RECORD_AUDIO"
Может быть, это потому, что я использую Samsung Galaxy Tab P1000, и он работает с Android 2.2? Есть идеи?
Большое спасибо