Enregistrement/capture sonore interne de lecture de l'application Android et d'exportation en mp3?
Est-il possible d'enregistrer le son interne généré par l'application?
Mon application vous permet de créer et de lire des séquences musicales.
soundPool.play(soundIds[i], 1f, 1f, 1, 0, Constants.TIME_RATE);
Je voudrais être en mesure de l'enregistrement de la séquence et de l'exportation en mp3.
J'ai regardé dans Capture Audio mais setAudioSource (int audio_source) ne semble accepter MICRO d'enregistrement.
Grâce
OriginalL'auteur fxfuture | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas d'API pour faire de l'audio de sortie, même pour votre propre application (en fait ce n'est pas tout à fait vrai, parce que vous pouvez l'obtenir par le biais de la
Animations
de l'API, mais il serait de faible qualité que je doute qu'il serait d'aucun usage pour vous).Si vous voulez ce genre de fonctionnalités que vous aurez à mettre en œuvre vous-même. C'est que vous commencez la lecture de sons, de les mélanger et écrire le résultat dans un fichier. Si les sons sont compressés, vous aurez également à prendre en cas de décodage de vous-même.
Remarque qu'il n'y a pas de MP3 encodeur inclus avec Android, de sorte que vous aurez à fournir votre propre encodeur MP3 de toute façon si c'est le format que vous souhaitez exporter.
Le scénario le plus simple serait si tous vos sons ont été raw PCM de la même fréquence d'échantillonnage, nombre de canaux, etc.; et vous avez utilisé une base additif table de mixage. Votre mélange se compose alors de prendre un échantillon de chaque actuellement à son actif et les ajouter ensemble, et ensuite, en utilisant le standard de Java Api de fichier pour écrire le résultat dans un fichier. Les soins devraient être prises pour s'assurer que l'addition ne débordera pas. Si vous commencez à traiter avec d'encodage et de décodage, il devient de plus en plus complexe. Vous pouvez trouver des infos utiles si vous google par exemple pour "ffmpeg mp3 android" ou "mixage audio".
Très utile merci. Trouvé ceci pour des démarreurs - mobilengineering.blogspot.il/2012/06/...
Comme le michael a dit , u besoin de mettre en place votre propre encodeur et le décodeur pour que . Visualizer est de très faible qualité des données becaz nous pouvons l'utiliser pour afficher sur des vues personnalisées et des effets synchronisés avec l'égaliseur. code.google.com/p/ringdroid/source/browse/...
J'ai juste essayé de sauver byte[] de la forme d'onde .fichier wav à partir de Visualizer.OnDataCaptureListener. Mais le fichier ne peut pas jouer.
OriginalL'auteur Michael
Comme michael a dit , u besoin de mettre en place votre propre encodeur et le décodeur pour que . Visualizer est de très faible qualité des données becaz nous pouvons l'utiliser pour afficher sur des vues personnalisées et des effets qui sont synchronisés avec l'égaliseur.
C'est le lien où u se trouvent simple décodeur et encodeur pour fichier MP3. Où ils sont les données de lecture de fichier MP3 et de le mettre dans de nouveaux fichiers MP3. Ils avaient créé de soutien pour une autre extension.
http://code.google.com/p/ringdroid/source/browse/#svn%2Fbranches%2Fgingerbread%2Fsrc%2Fcom%2Fringdroid
OriginalL'auteur Pranav Jadav
Selon http://xzpeter.org/?p=254 il est possible de saisir son interne de la lecture si vous modifiez Android sources. En particulier la fonction d'écriture de la
AudioFlinger::MixerThread
classe. (À noter que l'article est un peu vieux sur les dernières versions d'AndroidAudioFlinger
a été réorganisé et écrire du code peut maintenant être trouvé dans lathreadLoop_write()
fonction).Citant solution originale auteur:
De toute façon, en vue de le convertir en mp3, vous devrez utiliser le codeur externe comme l'a déclaré Michael.
OriginalL'auteur Idolon