2017-08-05 3 views
0

Je suis en train d'enregistrer l'audio dans mon application sur un bouton presseen utilisant des enregistrements audio recorder, puis télécharger que sur le serveur Android

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
    startActivityForResult(intent, ACTIVITY_RECORD_SOUND); 

Mais il me donne erreur de

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND } 

mais quand J'installe n'importe quel enregistreur de son à partir du magasin de jeu cette erreur est partie, mais après l'enregistrement de l'audio, il ne retourne rien. Il reste sur la fenêtre de l'enregistreur.

aussi ce que je dois écrire pour obtenir ce fichier audio et le télécharger sur le serveur

 @Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

} 

Répondre

0

Mais il me donne erreur de

Il n'y a pas besoin d'un appareil Android pour avoir une activité qui répond à cette action Intent.

Lorsque j'installe un enregistreur de son depuis le magasin de jeu, cette erreur a disparu, mais après l'enregistrement de l'audio, il ne renvoie rien. Il reste sur la fenêtre de l'enregistreur.

Cette application a un bug, apparemment.

aussi ce que je dois écrire pour obtenir ce fichier audio et le télécharger sur le serveur

Citant the documentation for RECORD_SOUND_ACTION, la sortie est « Un uri au son enregistré stocké dans la bibliothèque multimédia si l'enregistrement était un succès". IOW, appelez getData() sur le Intent livré à onActivityResult(), et cela est censé être un Uri pointant vers l'audio enregistré. Notez que ceci n'a pas à représenter un fichier sur le système de fichiers, encore moins celui auquel vous pouvez accéder.

0

Vous pouvez utiliser le code ci-dessous.

MediaRecorder recorder = new MediaRecorder(); 
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
     recorder.setOutputFile(path); 
//   recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);   for mp3 audio 
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.prepare(); 
recorder.start(); 

et le chemin pourrait être quelque chose où le fichier existe.

path = Environment.getExternalStorageDirectory() + "/Android/data/" + context.getApplicationContext().getPackageName() + "/files/" + "myrecording.m4a";