2

J'ai un fichier vidéo mp4 dans ma carte SD. Je voudrais extraire l'audio de la vidéo, puis enregistrer l'audio extrait en tant que fichier distinct sur la carte SD en utilisant MediaExtractor Api. Voici le code que j'ai essayé:Extrait audio à partir de Mp4 et enregistrer sur carte SD (MediaExtractor)

MediaExtractor extractor = new MediaExtractor(); 
    extractor.setDataSource(MEDIA_PATH_To_File_On_SDCARD); 
    for (i = 0; i < extractor.getTrackCount(); i++) { 
      MediaFormat format = extractor.getTrackFormat(i); 
      String mime = format.getString(MediaFormat.KEY_MIME); 
      if (mime.startsWith("audio/")) { 
       extractor.selectTrack(i); 
       decoder = MediaCodec.createDecoderByType(mime); 

       if(decoder != null) 
       { 
        decoder.configure(format, null, null, 0); 
       } 

       break; 
      } 
     } 

suis coincé ici, je ne sais pas comment prendre la piste audio sélectionnée et l'enregistrer sur la carte SD.

Répondre

0

jeter un oeil à mon poste Decoding Video and Encoding again by Mediacodec gets a corrupted file où il y a un exemple (juste prendre soin de la réponse aussi). vous devez utiliser un MediaMuxer, appelez AddTrack pour la piste vidéo et écrivez les données sur cette piste au multiplexeur après avoir encodé chaque image. Vous devez ajouter une piste pour l'audio aussi. Si vous ne voulez que de l'audio, ignorez la partie vidéo et enregistrez simplement les données dans le multiplexeur associé à l'audio. Vous pouvez voir quelques exemples dans la page Grafika, l'un d'entre eux pourrait être le suivant: https://github.com/google/grafika/

vous pouvez trouver d'autres exemples ici aussi: http://www.bigflake.com/mediacodec/

Merci

+0

Merci !, je vais essayer et vous faire savoir comment ça s'est passé –

+0

@donnie hey, j'essaie de faire quelque chose de similaire. Pouvez-vous s'il vous plaît dites-moi où commencer ou partager un morceau de code. –