La création d'un fichier WAV à partir de raw PCM données à l'aide du kit SDK d'Android
Je suis en train d'utiliser le AudioRecord classe pour enregistrer un fichier WAV. Le problème c'est qu'il ne fournit les premières données PCM, et si je l'écris dans un fichier, il n'y a pas d'informations d'en-tête, de sorte qu'il ne sera pas lu par n'importe quel lecteur multimédia. Comment puis-je créer un fichier WAV à partir de ces données brutes?
Ou sinon, est-il un autre moyen d'enregistrer le son en Android vers un fichier WAV (ou, alternativement MP3)?
Oh, et je sais que MediaRecorder peut y être utilisée, car elle ne prend pas en charge soit au format WAV ou MP3.
- Oh... j'ai essayé de lire raw PCM données dans android... pourriez-vous s'il vous plaît poster le code que vous utilisez?
Vous devez vous connecter pour publier un commentaire.
OK, j'ai compris. Ce message a été crucial pour moi:
http://computermusicblog.com/blog/2008/08/29/reading-and-writing-wav-files-in-java
En gros, j'ai utilisé ByteArrayOutputStream à écrire les premières données PCM de AudioRecord, qui ensuite me permet d'obtenir le tableau d'octets et sa taille lorsque le processus est terminé. Je peux ensuite utiliser ces données de concert avec le taux d'échantillonnage, BitRate, et Stereo/Mono paramètres pour créer les fichiers WAV en-tête par le lien ci-dessus. Le fichier résultant fonctionne parfaitement!
Vérifier la MediaRecorder.setOutputFormat(), vous pouvez définir différents formats de conteneur pour votre enregistrement; il est MediaRecorder.OutputFormat."MPEG_4 et MediaRecorder.OutputFormat.THREE_GPP; le seul autorisé format le long de RAW est setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Désolé mais le MP3 n'est pas dispo. Vous avez vraiment besoin de fichiers mp3 pour l'enregistrement?
WAV sur le côté opposé de MP3 est un conteneur, pas un format; WAV peut être n'importe quel type de format de codage.
Vous êtes toujours libre de la faire précéder de quelques RIFF WAV en-tête à l'avant de votre cru données pcm (aussi longtemps que vous savez exactement le format). Vérifiez ici pour savoir comment il doit ressembler:
http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html
Vous souhaiterez peut-être utiliser mediarecord classe