2017-02-03 5 views
0

Je suis confronté à un problème que sur le bouton tactile je commence à enregistrer l'audio dans mon application android, mais quand je joue l'audio enregistré il manque une certaine durée de l'audio enregistré.Enregistrement audio sur appui de bouton manquant une certaine durée sur mon appareil Android

Voici mon extrait de code pour commencer à enregistrer la voix sur un bouton tactile donnée par:

public void start() { 

    myRecorder = new MediaRecorder(); 
    myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
    myRecorder.setOutputFile(outputFile); 

    try { 
     myRecorder.prepare(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    myRecorder.start(); 
    text.setText("Recording point: Recording..."); 

} 

Sur détection événement touche i commence à appeler ce début(); fonction. Est-ce que n'importe quel corps peut me dire n'importe quelle solution alternative? J'ai fait face à ce problème sur mon appareil Android glone s3.

Répondre

1
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
myRecorder.setOutputFile(outputFile); 

Le morceau de code ci-dessus prend un certain temps, d'où le délai entre l'utilisateur en appuyant sur le bouton (start() appelé) et l'enregistreur de réellement commencer l'enregistrement (myRecorder.start()).

Vous devez initialiser l'enregistreur et le préparer avant d'appuyer sur le bouton. Il suffit de déplacer le morceau de code ci-dessus ailleurs, par ex. onCreate(). Puisque je ne connais pas le contexte de ce code, je ne peux pas vous dire exactement où.