J'ai capturé de l'audio en utilisant le mode de capture en boucle. La forme d'onde capturée est une forme d'onde de 32 bits. J'ai du mal avec la conversion de cette forme d'onde de 16 bits, donc les encodeurs comme lame peuvent y faire face (il est dit Format de données non pris en charge: 0x0003).Conversion d'une forme d'onde de 32 bits en une forme d'onde de 16 bits
J'ai essayé de déplacer les bits (pas mon point fort) dans le flux d'onde lui-même de 32 bits à 16 bits, mais le résultat semble toujours déformé.
La classe Wave32To16Stream semble sauter sur cette affaire: si (sourceStream.WaveFormat.Encoding = WaveFormatEncoding.IeeeFloat!) Throw new ApplicationException ("Seulement 32 bits à virgule flottante pris en charge");
Idéalement, je voudrais juste capturer directement à 16 bits, est-il impossible de définir la profondeur de bits de capture? Sinon, quelqu'un pourrait-il m'aider à convertir le flux d'ondes?
Un exemple d'une forme d'onde capturée se trouvent ici: http://dl.dropbox.com/u/454409/test.wav (10mb)
Je voudrais aussi se contenter d'un moyen de coder ce mp3 avec boiteux, j'ai essayé chaque permutation des paramètres que je peux penser à l'obtenir pour accepter le fichier wave. Ce qui est intéressant, c'est Audacity (qui utilise lame_enc pour encoder des mp3) a été capable de créer un mp3 à partir de la forme d'onde (mais peut-être Audacity le convertit automatiquement en 16bit avant de le passer en lame).
Cela m'a pointé dans la bonne direction, a résolu mon problème. – hreinn1000