Article traitant de l'enregistrement au format Wav sur serveur ou pc client du son du microphone avec l'API Flash.
http://ressources.me...ment_microphone


#1
Posté 12 March 2011 - 11:57 AM
#2
Posté 20 March 2011 - 18:17 PM
Super Stéphane,
Ça va servir je pense.
J'ai enlevé 2 coquilles de code (c'était rien) et ajouté un swf de démo à la page. C'est toi qui m'a inspiré avec cette histoire de Dark Vador
Bon moi j'ai pas su comment modifier la hauteur d'un son sans modifier sa vitesse. J'ai commencé à googler "pitch" et je me suis vite arrêté!
Ça va servir je pense.



J'ai enlevé 2 coquilles de code (c'était rien) et ajouté un swf de démo à la page. C'est toi qui m'a inspiré avec cette histoire de Dark Vador

Bon moi j'ai pas su comment modifier la hauteur d'un son sans modifier sa vitesse. J'ai commencé à googler "pitch" et je me suis vite arrêté!
#3
Posté 20 March 2011 - 18:22 PM
Au fait il me reste une question:
Pourquoi choisir la valeur 4096 dans onSoundSample() ?
Pourquoi choisir la valeur 4096 dans onSoundSample() ?
#4
Posté 21 March 2011 - 09:40 AM
Je viens faire mon troll (histoire de récupérer quelques points, Goa tu tiens les scores à jour, je compte sur toi ?) pour te dire, stef, que pour l'avoir seulement parcouru - le tuto - je ne peux pas te faire un retour qualité, mais sûr que c'était un sujet à traiter, et que je me sens soulagée à l'idée que quand j'aurai des velléités de jouer avec le son, et bien je saurai pour le moins par où attaquer l'embrouille, et ça, c'est pas du petit merci que ça implique

Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos
une tartine de tutos
#5
Posté 19 April 2011 - 15:37 PM
Hello,
Merci pour ce petit tuto qui fonctionne, qui compile et tout et tout.
J'ai besoin d'enregistrer des voix, les convertir en mp3 et les balancer sur un serveur.
Pas de problème donc pour enregistrer (ton tuto), les enregistrer sur le serveur via php ne me pose pas de problème.
C'est au sujet de la conversion en mp3, j'ai téléchargé ce dont tu parlais : https://github.com/k...-on-AS3-Alchemy . Je compile leur exemple. Ensuite viens le moment ou je réunis les deux tutos.
protected function btn_save_clickHandler(event:MouseEvent):void
{
var writer:WAVWriter=new WAVWriter();
// je dispatch un event de WAVWriter une fois que le processSamples est terminé (c'est peut-être inutile ?)
writer.addEventListener("DONE" ,waveDone) ;
wavData=new ByteArray();
writer.numOfChannels=1;
writer.sampleBitRate=16;
writer.samplingRate=44100;
recordingData.position=0;
writer.processSamples(wavData, recordingData, 44100, 1);
}
private function waveDone(e:Event):void {
mp3Encoder = new ShineMP3Encoder(wavData);
mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
mp3Encoder.addEventListener(ProgressEvent.PROGRESS, mp3EncodeProgress);
mp3Encoder.addEventListener(ErrorEvent.ERROR, mp3EncodeError);
mp3Encoder.start();
}
Et la console me sort ceci :
Ce que je comprend : le byteArray(wavData passé à la moulinette par writer.processSamples) que je balance pour être convertit par ShineMP3Encoder n'est pas au bon format. Je precise que celui n'est pas null, son .length est 'à taille'.
Avez vous déja eu ce genre de problème ? Une idée, un conseil constructif ?
Merci !!
Merci pour ce petit tuto qui fonctionne, qui compile et tout et tout.
J'ai besoin d'enregistrer des voix, les convertir en mp3 et les balancer sur un serveur.
Pas de problème donc pour enregistrer (ton tuto), les enregistrer sur le serveur via php ne me pose pas de problème.
C'est au sujet de la conversion en mp3, j'ai téléchargé ce dont tu parlais : https://github.com/k...-on-AS3-Alchemy . Je compile leur exemple. Ensuite viens le moment ou je réunis les deux tutos.
protected function btn_save_clickHandler(event:MouseEvent):void
{
var writer:WAVWriter=new WAVWriter();
// je dispatch un event de WAVWriter une fois que le processSamples est terminé (c'est peut-être inutile ?)
writer.addEventListener("DONE" ,waveDone) ;
wavData=new ByteArray();
writer.numOfChannels=1;
writer.sampleBitRate=16;
writer.samplingRate=44100;
recordingData.position=0;
writer.processSamples(wavData, recordingData, 44100, 1);
}
private function waveDone(e:Event):void {
mp3Encoder = new ShineMP3Encoder(wavData);
mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
mp3Encoder.addEventListener(ProgressEvent.PROGRESS, mp3EncodeProgress);
mp3Encoder.addEventListener(ErrorEvent.ERROR, mp3EncodeError);
mp3Encoder.start();
}
Et la console me sort ceci :
DONE WAVe CREATION
Shine 0.1.4
[ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Input not a MS-RIFF file"]
Microsoft RIFF,
WAVE audio,
PCM, (null) -1Hz
-1bit,
Length: 0: 0: 0
MPEG-I layer III, stereo Psychoacoustic Model: Shine
Bitrate=128 kbps
De-emphasis: none Original
Shine 0.1.4
[ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Input not a MS-RIFF file"]
Microsoft RIFF,
WAVE audio,
PCM, (null) -1Hz
-1bit,
Length: 0: 0: 0
MPEG-I layer III, stereo Psychoacoustic Model: Shine
Bitrate=128 kbps
De-emphasis: none Original
Ce que je comprend : le byteArray(wavData passé à la moulinette par writer.processSamples) que je balance pour être convertit par ShineMP3Encoder n'est pas au bon format. Je precise que celui n'est pas null, son .length est 'à taille'.
Avez vous déja eu ce genre de problème ? Une idée, un conseil constructif ?
Merci !!
Modifié par samuelg, 19 April 2011 - 15:41 PM.
#6
Posté 20 April 2011 - 09:42 AM
C'est réglé !
Je n'utilise plus WAVWriter.as (adobe) pour convertir le byteArray en wav avant de le passer en mp3 via shineEncoder, mais une class WaveEncoder.as trouvé chez mR bytearray.org.
Résolu !
Shine 0.1.4
Microsoft RIFF,
WAVE audio,
PCM, mono 44100Hz
16bit,
Length: 0: 0: 2
MPEG-I layer III, mono Psychoacoustic Model: Shine
Bitrate=128 kbps
De-emphasis: none Original
encoding mp3... 37%
encoding mp3... 74%
encoding mp3... 100%
Done in 0.994s
Microsoft RIFF,
WAVE audio,
PCM, mono 44100Hz
16bit,
Length: 0: 0: 2
MPEG-I layer III, mono Psychoacoustic Model: Shine
Bitrate=128 kbps
De-emphasis: none Original
encoding mp3... 37%
encoding mp3... 74%
encoding mp3... 100%
Done in 0.994s
Je n'utilise plus WAVWriter.as (adobe) pour convertir le byteArray en wav avant de le passer en mp3 via shineEncoder, mais une class WaveEncoder.as trouvé chez mR bytearray.org.
Résolu !
#7
Posté 04 May 2011 - 19:29 PM
Merci d'avoir pris le temps du retour d'expérience Samuel 
Du coup j'ai rajouté une petite note au tuto pour indiquer ta solution, et ça pourra servir aux prochains lecteurs.
Dans un cas comme ça, et si tu te le sens, n'hésite pas à enrichir toi-même la page.

Du coup j'ai rajouté une petite note au tuto pour indiquer ta solution, et ça pourra servir aux prochains lecteurs.
Dans un cas comme ça, et si tu te le sens, n'hésite pas à enrichir toi-même la page.
#9
Posté 16 May 2011 - 22:37 PM
Pour ton problème j'avais le même et il suffit de remettre la position dans le byteArray à 0 avant l'encodage mp3, car la lib utilisée ne le fait pas au début. J'avais envoyé un mail à l’auteur de la lib pour qu'il corrige ce problème mais apparemment il a omis de le faire.
#11
Posté 17 May 2011 - 10:45 AM
Ah ouais, c'était tout simple mais il fallait y penser 
Merci Stef.

Merci Stef.
#12
Posté 08 June 2012 - 03:44 AM
Merci pour le tutoriel! Très apprécié

1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)