У меня возникла проблема с использованием AudioRecord для Android. Я читал столько, сколько я могу найти в Интернете, но я не могу получить хорошую инициализацию. Я пробовал эмулятор Android 2.2, эмулятор 1.5 и мой телефон, HTC Incredible running Froyo. Эмуляторы и мой телефон завершают инициализацию.Android AudioRecord не удалось инициализировать
я пробовал частота дискретизации 8000, 11025 и 44100, форматы CHANNEL_IN_MONO/STEREO и CHANNEL_CONFIGURATION_MONO/STEREO, 8bit и кодирование 16bit (8 бит делает getMinBufferSize неудачу), и AudioSource ВПК и DEFAULT. Все результаты теста переменной становятся 0 после запуска состояния get (неудачная инициализация).
Кажется, из всего, что я прочитал, это должно правильно инициализировать объект. Я играл с множителем на buflen, чтобы он варьировался от 512 (результат функции) до 102400, потому что я слышал, что устройствам HTC требуется что-то выше 8192.
Для тестирования моей проблемы я создал новую, небольшой проект, который как можно проще воссоздает мою проблему. Я вытаскиваю константы, необходимые в локальные ints, затем запускаю конструктор и обращаюсь к методу getState для проверки того, работает ли он.
package com.example.audiorecordtest;
import android.app.Activity;
import android.os.Bundle;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
public class audioRecordTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int freq =8000;
int chan = AudioFormat.CHANNEL_IN_MONO;
int enc = AudioFormat.ENCODING_PCM_16BIT;
int src = MediaRecorder.AudioSource.MIC;
int buflen = AudioRecord.getMinBufferSize(freq, chan, enc);
AudioRecord ar = new AudioRecord(src,freq,chan,enc,20*buflen);
int test = ar.getState();
}
}
Спасибо, думаю, я слишком быстро вскочил, пытаясь заставить звук работать, не понимая, что я должен был это сделать. Огромное спасибо. –
Зачем ему нужен вибратор? – Tom