2016-07-24 4 views
2
@SuppressWarnings("deprecation") 
private void saveAudio(String text) 
{ 
    HashMap<String, String> myHashRender = new HashMap(); 
    String textToConvert = text; 
    String destinationFileName = "/sdcard/audio.wav"; 
    myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, textToConvert); 
    tts.synthesizeToFile(textToConvert, myHashRender, destinationFileName); 
} 

Ceci est ma fonction qui devrait enregistrer l'audio dans un fichier. La méthode synthesizeToFile renvoie 0, ce qui signifie SUCCESS, et crée le fichier, mais il est corrompu, il ne joue dans aucun lecteur multimédia. J'utiliser la version dépréciée de la méthode parce que ma version est 16. J'ai aussitextToSpeech.synthetizeToFile crée un fichier corrompu?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

Quel est le problème avec ce code?

Merci d'avance.

+0

Utilisez-vous un écouteur d'avancement ou énoncé rempli d'écoute pour confirmer le fichier a terminé l'écriture, avant de tenter de lire/écouter ce ? – brandall

Répondre

0

Oui, il a créé un fichier audio vide. Mais quand je commentais la dernière ligne dans le code suivant extrait de code, il a commencé à écrire correctement le fichier:

 String sLcl = screen7thTextFileUri.getPath(); 
     iLcl=sLcl.lastIndexOf(File.separator); 
     sLcl=sLcl.substring(0,iLcl); 
     String textLcl = getTypedText(); 
     mTts.synthesizeToFile(textLcl, null, new File(sLcl+"/test.wav"),"0"); 
     mTts.speak(textLcl , TextToSpeech.QUEUE_FLUSH, null);