2010-07-12 2 views
0

Je veux changer le volume d'un fichier audio et enregistrer le nouveau fichier en utilisant java.sound.sampled.Modifier le volume d'un fichier audio et enregistrer le fichier en utilisant java.sound.sampled

J'ai essayé d'utiliser le mélangeur pour créer une ligne source à partir du fichier donné et une ligne cible vers le nouveau fichier. Alors que je peux modifier les paramètres de mixage pour modifier le volume. Mais le son est joué sur le haut-parleur du système. Est-ce que je réfléchis bien ou pas? est-il une autre façon d'enregistrer un fichier à partir d'une ligne?

Le code est disponible here Une solution que j'ai eu est www.jsresources.org/examples/AmplitudeConverter.html. Mais peut même être fait dans java.sound.sampled sans utiliser des bibliothèques externes.

Répondre

0

Pour modifier le volume, si vous n'utilisez pas un « contrôle » (voir les tutoriels Java Sound), il y a la possibilité de modifier directement les échantillons eux-mêmes. Dans votre boucle la plus interne, convertissez les octets du tampon le plus à l'intérieur en un échantillon (s'il s'agit d'un encodage WAV 16 bits, vous devez alors assembler les deux octets pour obtenir la valeur SHORT unique), puis multipliez cette valeur par un flottant allant de 0 à 1, où 0 est le plus silencieux et 1 laisse le son à plein volume. Ensuite, prenez le résultat et décomprimez-le en deux octets et transmettez-le.

Avez-vous besoin du code pour le faire? Il y a plusieurs autres messages ici où les gens convertissent des octets en INTs ou Float et retour.

Hmmm. Cette question est assez ancienne. Eh bien peut-être que ma réponse aidera quelqu'un de nouveau au même problème.

Questions connexes