IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[ANDROID] Enregistrer un son à partir du micro de son mobile


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 63
    Points : 33
    Points
    33
    Par défaut [ANDROID] Enregistrer un son à partir du micro de son mobile
    Bonjour,

    Je débute en Android et je sais bien que cette question a du être posée cent fois, mais j'ai un problème...
    Voilà j'aimerais enregistrer du son à partir du micro de mon portable.
    J'ai d'abord essayer de coder ça moi même mais j'ai eu des problèmes. J'ai alors suivi un tuto, la même chose, j'ai donc carrément pompé un exemple (le lien ci dessous) sur le site d'Android. Toujours le même souci, je viens donc réclamer votre pitié.

    http://developer.android.com/guide/t...o-capture.html

    Lorsque j'essaie d'enregistrer, il me met une fenêtre pop up me disant que "l'application s'est malheureusement arrêtée".

    Mon téléphone est un Sony XPeria U avec Ice Cream Sandwich 4.0.4


    Voici mon fichier de Log si ça peut vous aider :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    10-04 19:00:34.168: D/TextLayoutCache(22800): Using debug level: 0 - Debug Enabled: 0
    10-04 19:00:34.208: D/libEGL(22800): loaded /system/lib/egl/libGLES_android.so
    10-04 19:00:34.238: D/libEGL(22800): loaded /system/lib/egl/libEGL_mali.so
    10-04 19:00:34.258: D/libEGL(22800): loaded /system/lib/egl/libGLESv1_CM_mali.so
    10-04 19:00:34.258: D/libEGL(22800): loaded /system/lib/egl/libGLESv2_mali.so
    10-04 19:00:34.278: D/OpenGLRenderer(22800): Enabling debug mode 0
    10-04 19:00:35.690: D/AndroidRuntime(22800): Shutting down VM
    10-04 19:00:35.690: W/dalvikvm(22800): threadid=1: thread exiting with uncaught exception (group=0x40ae0210)
    10-04 19:00:35.710: E/AndroidRuntime(22800): FATAL EXCEPTION: main
    10-04 19:00:35.710: E/AndroidRuntime(22800): java.lang.RuntimeException: setAudioSource failed.
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.media.MediaRecorder.setAudioSource(Native Method)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.example.player.MainActivity.startRecording(MainActivity.java:74)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.example.player.MainActivity.onRecord(MainActivity.java:42)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.example.player.MainActivity.access$0(MainActivity.java:40)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.example.player.MainActivity$RecordButton$1.onClick(MainActivity.java:99)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.view.View.performClick(View.java:3574)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.view.View$PerformClick.run(View.java:14293)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.os.Handler.handleCallback(Handler.java:605)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.os.Handler.dispatchMessage(Handler.java:92)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.os.Looper.loop(Looper.java:137)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at android.app.ActivityThread.main(ActivityThread.java:4448)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at java.lang.reflect.Method.invokeNative(Native Method)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at java.lang.reflect.Method.invoke(Method.java:511)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
    10-04 19:00:35.710: E/AndroidRuntime(22800):    at dalvik.system.NativeStart.main(Native Method)
    10-04 19:00:38.522: I/Process(22800): Sending signal. PID: 22800 SIG: 9
    Merci d'avance pour tout aide !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Non, ce forum n'est pas mort. Ça ne fait que deux jour alors on se calme !
    Il n'y a certainement pas assez de personnes spécialisée dans la capture audio, tout simplement.
    je sais bien que cette question a du être posée cent fois
    Si c'est le cas, fais des recherches avant de poster.

    Ensuite, si tu as une erreur le logcat te donne en général la source du problème (99 fois sur 100). Et un logcat + le code source associé c'est 99.9 fois sur 100.

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui je trouve le ton pas très approprié...

    L'erreur indique ce qui pose problème: setAudioSource failed.

    Sachant qu'il existe des milliers d'applications sur le store capables d'enregistrer de l'audio, et que le code est dans 90% des cas celui de la documentation officielle (souvent bien plus juste que le site-du-zero qui porte assez bien son nom), il faut se tourner vers un problème d'environnement de l'application.

    Donc une idée, parmi tant d'autres... l'application a bien la permission d'enregistrer de l'audio ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Cela m'étonnerait extraordinairement que ce code vienne de chez google...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void StartRecording()
    Un nom de fonction est obligatoirement en "camelCase" soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void startRecording()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		try {
    			recorder.prepare();
    		} catch (IllegalStateException e) {
    			Log.e("StartRecording", "IllegalStateException " + e.getMessage());
    			e.printStackTrace();
    		} catch (IOException e) {
    			Log.e("StartRecording", "IOException " + e.getMessage());
    			e.printStackTrace();
    		}
    		recorder.start();   // Recording is now started
    La c'est n'importe quoi, ... en somme on intercepte les problèmes du prepare, et on continue quand même sur le start() (qui ne va probablement pas marcher). En prime l'utilisation de la fonction Log est érronnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		try {
                            recorder.setXXXXX(...);
                            ...
    			recorder.prepare();
                            recorder.start();
    		} catch (Exception e) {
                            // autant tout catcher d'un coup, on n'ira pas plus loin !
    			Log.e("MainActivity", "startRecoring failed.",e);
                            // on peut aussi rajouter un Toast pour l'utilisateur au cas ou.
    		}
    L'appel à StartRecording(); et StopRecording(); dans le onCreateOptionsMenu() ? cette fonction a de bonne chance d'être appelée assez vite. que l'utilisateur appuie sur le bouton "menu" ou pas. Qu'est ce que ces appels font là ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Récupérer le son à partir du micro
    Par ziedbhz dans le forum Multimédia
    Réponses: 2
    Dernier message: 03/09/2009, 00h58
  2. Enregistrer un son à partir d'un bouton sur le guide
    Par fleurrouge dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 29/06/2009, 17h56
  3. Enregistrer du son à partir d'un micro
    Par hush dans le forum Applets
    Réponses: 1
    Dernier message: 27/02/2008, 21h08
  4. Enregistrer le son a partir du micro d'une webcam
    Par koKoTis dans le forum Audio
    Réponses: 4
    Dernier message: 27/08/2007, 20h51
  5. Capture de son à partir du micro
    Par pelotudo dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/02/2007, 23h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo