Android AudioRecord questions?

J'ai été déconner avec le AudioRecord fonction de l'API Android et a trouvé quelques comportements étranges avec elle.

Des informations de base:
Mon téléphone est un HTC Incredible
J'utilise le plugin Eclipse pour le développement Android avec l'émulateur.
Plateforme ciblée ou OS est de 2,2... Puisque c'est ce que mon téléphone utilise.

Code:

bufferSize = AudioRecord.getMinBufferSize(FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);

C'est le code que j'utilise pour l'installation de l'AudioRecord de l'API. Maintenant, pour l'émulateur, il aime la FRÉQUENCE à définir à 8000 pour que cela fonctionne. Revient avec un tampon de taille 640. Pour le téléphone je utiliser 44100. Un seul problème ici est parait-il la résultante de données PCM pour la vague semble être un huit bits signé vague. Je reçois des valeurs de -127 à 128. Je pensais que la valeur AudioFormat.ENCODING_PCM_16BIT serait de produire quelque chose de différent.

Je traiter l'audio avec un fil,

public void run() {
  while(isRecording) {
    audioRecord.startRecording();
    byte[] data = new byte[bufferSize];
    audioRecord.read(data, 0, bufferSize);
    listener.setData(data);
    handleData(data);
  }
  audioRecord.release();
}

J'ai une façon d'afficher sous forme graphique correspondant à l'onde en temps réel à l'aide d'un SurfaceView. Il semble y avoir beaucoup de bruit venant de la MIC. Je reçois ce bruit à partir de l'émulateur et le téléphone. Ai-je besoin pour exécuter les données à travers une sorte de filtre(s)? Je voudrais utiliser ces données pour calculer le plaisir de la FFT et des trucs juste pour jouer avec les vagues. Mais j'ai besoin de réduire le bruit en quelque sorte.

Quelqu'un d'autre a de l'expérience. Quelqu'un aurait-il une solution?

J'ai apprécié votre temps et de vos réponses,
merci,
dk

OriginalL'auteur dakira | 2011-01-16