AudioFlinger ne pouvait pas créer un enregistrement de la piste, statut: -1 , Besoin d'aide pour ifx
public class AudioRecorderActivity extends Activity {
private static final int RECORDER_SAMPLERATE = 8000;
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_MONO;
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private AudioRecord recorder = null;
private static final String TAG = "AudioRecorderActivity";
short[][] buffers = new short[256][160];
int ix = 0;
private boolean stopped = false;
private void startRecording() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
try {
int N = AudioRecord.getMinBufferSize (
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING) * 20;
recorder = new AudioRecord(AudioSource.MIC,
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING,N );
recorder.startRecording();
while(!stopped) {
short[] buffer = buffers[ix++ % buffers.length];
N = recorder.read(buffer,0,buffer.length);
}
}
catch(Throwable x) {
Log.v(TAG,"Error reading voice audio",x);
x.printStackTrace();
}
finally {
stopped = true;
stopRecording();
}
}
}
Question : Si l'extrait de code est basé sur un exaple de StackOverflow, il n'est pas de travail
S'il vous plaît laissez-moi savoir ce que pourrait être l'erreur ?
Voici le Message d'Erreur
12-20 03:44:32.271: E/AudioRecord(224): AudioFlinger could not create record track, status: -1
12-20 03:44:32.271: E/AudioRecord-JNI(224): Error creating AudioRecord instance: initialization check failed.
12-20 03:44:32.271: E/AudioRecord-Java(224): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.
Ce kit SDK d'Android ont été vous adressez-vous?
OriginalL'auteur user3120896 | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
Ajouter record_audio l'autorisation de AndroidManifest.xml
vous sauver ma journée!
Pour info: Le <utilisateur la permission> tag est un frère de l' <application> tag XML, et un enfant de la racine de la balise <manifest> .. dans l'ordre pour qu'il prenne effet, Clean > Reconstruire > Exécuter
Je l'ai fait et toujours le même message d'erreur
OriginalL'auteur Olexij Moroz
Sur les dernières versions d'Android, il semble que repushing l'apk de Android Studio après avoir changé les permissions dans le manifeste n'est pas réellement modifier les autorisations dans les paramètres de l'application. C'est pourquoi la réponse ci-dessus a fonctionné pour moi. J'avais construit une application sans la RECORD_AUDIO autorisation dans mon manifeste, et vu l'autorisation d'erreur dans mon journal (avec les erreurs dans l'OP). J'ai ajouté la permission de mon manifeste et rediffusé l'application sur le périphérique, l'autorisation d'erreur dans le journal n'était plus là, mais j'ai toujours les erreurs dans l'OP. Je suis allé à mon Système, des Applications, Application Manager -> MyApp -> les Autorisations, et vu que l'Enregistrement Audio a été répertorié, mais encore éteint. En tournant manuellement que sur le fixe.
J'imagine (mais je n'ai pas confirmé) que si j'ai construit l'autorisation correcte dans mon manifeste en premier lieu, cela aurait juste a fonctionné pour moi. Sinon, la désinstallation de mon application à partir de l'appareil, et de le réinstaller, peut fixer trop, mais je n'ai pas essayé non plus.
C'est idiot que les autorisations ne soyez pas mis à jour, mais c'était la cerise sur le gâteau le gâteau proverbiale qui est la réponse.
OriginalL'auteur Dave Hooper
Solution pour le Pré-Guimauve versions d'android sera la même que Olexij mentionné...
Cependant que le démarrage d'API Android 23 (Guimauve), c'est considéré comme dangereuse et de la permission et vous devez demander l'autorisation de l'intérieur de l'Activité où il est utilisé.
Dave expérience est le résultat de cela; si vous déclarez l'autorisation de Manifester, mais ne demande pas au moment de l'exécution (au moins la première fois), alors il va montrer en Application des Autorisations dans le Gestionnaire d'Applications, mais restera éteint.
Vérifier...
Les développeurs
OriginalL'auteur Nashe
La solution pour API 23 (Guimauve) est simple. Vous devez définir "targetSdkVersion 22" dans le bulid.gradle fichier, après avoir soufflet autorisation.
OriginalL'auteur Pouya Ahmadvand
Donner la Permission Explicite résolu le problème pour moi.
Essayez ces étapes
OriginalL'auteur Jint