& lt; AudioRecord & gt; "Impossible d'obtenir une entrée audio pour la source d'enregistrement 1"
J'ai eu ce problème à l'initialisation d' AudioRecord
pour Android. J'ai cherché pendant un certain temps sur le web, sans succès.
Pour le téléphone, je suis sur un Samsung GalaxyS sur le SDK de la version 7. Pour le AudioRecord
d'initialisation, je suis en utilisant 8000 que le taux d'échantillonnage, MONO canal de config, 16bit pour le format audio, et selon le journal, le minBufferSize est 4160. J'ai ajouté le AUDIO_RECORD la permission de le manifester.
Mon code pour l'initialisation est comme suit:
...
private static int SAMPLE_RATE = 8000;
private static int CHANNEL_CONFIG = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
//??? Both 8Bit and Default are deemed illegal.
public MicVolumeManager() {
this.bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE,
CHANNEL_CONFIG, AUDIO_FORMAT);
PhoneDebugger.debug("AUDIO-BUFFER-SIZE",
Integer.toString(this.bufferSize));
this.recorder = new AudioRecord(AudioSource.MIC, SAMPLE_RATE,
CHANNEL_CONFIG, AUDIO_FORMAT, this.bufferSize);
this.audioBuffer = new byte[this.bufferSize];
}
...
Toutefois, l'objet (ce.enregistreur) n'a pas pu être initialisé. Ce qui suit est le journal de l'aide DDMS:
AUDIO-TAILLE DE BUFFER(3253): 4160
AudioRecord(3253): set(): taux d'échantillonnage de 8000, les canaux 16, frameCount 2080
AudioPolicyManager(2175): getInput() inputSource 1, samplingRate 8000, le format 1, les canaux 10, acoustique 0
AudioFlinger(2175): openInput() openInputStream retourné entrée 0x0, SamplingRate 8000, le Format 1, les Canaux 10, acoustique 0, état -17
AudioRecord(3253): ne Pouvait pas obtenir l'entrée audio de la source d'enregistrement 1
AudioRecord-JNI(3253): Erreur lors de la création AudioRecord exemple: initialisation de l'échec de la vérification.
AudioRecord-Java(3253): [ android.médias.AudioRecord ] le code d'Erreur
-20 lors de l'initialisation natif AudioRecord objet.
Toute aide, s'il vous plaît? Merci beaucoup!
source d'informationauteur Crastinator
Vous devez vous connecter pour publier un commentaire.
Pour moi, la cause était pas à l'appel de AudioRecord.release() pour une instance précédente de AudioRecord; il ligoté ressources autochtones dans AudioFlinger et interféré avec la suite AudioRecord instances. Vu sur un Samsung Fascinate (Galaxy S) Android 2.1 (Eclair); soit l'Eclair ou la Samsung la mise en œuvre peut être particulièrement intolérant.
Eu la même erreur, jusqu'à ce que je redémarré l'appareil.
Il semble que sur mon Galaxy S le natif impl est buggé: plusieurs fois l'acquisition et la publication d'une
AudioRecorder
(au cours de l'ensemble de téléphone de disponibilité) provoque l'erreur.Après l'utilisation d'un enregistreur audio, vous devez arrêter et de le relâcher. Puis, quand vous init l'enregistreur audio, la prochaine fois, c'est ok.
Salut j'ai eu le même problème lors de la tentative d'initialiser un AudioRecord objet et la solution que j'ai trouvé était de tester la configurtion paramètre avant de l'essayer pour instancier le courant AudioRecord objet. Voici la rouine il que j'ai utilisé:
Je Hop cette aide.
Dickwan
Touchant également les Sansung Galaxy tabs GT-P1000 et plus tard 10.1 un
Ce bug est assez difficile à reproduire, et un redémarrage est le seul moyen que j'ai trouvé pour échapper à ce mauvais état ...
Est-il un bug tracker pour suivre chez samsung ?
Si vous ne prenez pas Record_Audio autorisation puis prendre encore de vous avoir d'erreur, puis éteignez votre mobile que de passer sur nouveau, puis exécutez votre application.
Je pense que le matériel audio ne peut pas prendre en charge jusqu'à 10 canaux, que vous définissez comme entrée, donc essayez d'utiliser 2 canaux, et de voir si ça peut fonctionner.