Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Capturer un son puis le diffuser  (Lu 3688 fois)

0 Membres et 1 Invité sur ce sujet

Computer Mail

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Capturer un son puis le diffuser
« le: Mai 05, 2017, 05:34:23 pm »
Bonjour,

j'ai suivi ce tuto https://www.sfml-dev.org/tutorials/2.4/audio-recording-fr.php pour capturer un échantillon sonore puis le jouer; voici mon code:
#include <iostream>
#include <string>
#include <chrono>
#include <SFML/Audio.hpp>
#include <SFML/Audio/SoundBuffer.hpp>
#include <SFML/Audio/SoundBufferRecorder.hpp>
#include <SFML/Audio/Sound.hpp>


unsigned long int a=1,b=0;


int main(){

if (!sf::SoundBufferRecorder::isAvailable()){std::cout<<"ERROR NO DEVICE FOUND";}

sf::SoundBufferRecorder recorder;


recorder.start();

while(a){

        ++b;

        if(b>2000000000){

                --a;}}

recorder.stop();


const sf::SoundBuffer& buffer = recorder.getBuffer();

std::cout<<"PROGRAM SUCCESSFUL"<<std::endl;

sf::Sound sound;

sound.setBuffer(buffer);

sound.play();

return 0;}

Il est censé enregistrer un son puis le diffuser seulement il ne fait qu'afficher PROGRAM SUCCESSFUL après le délai d'attente créé par la boucle, j'ai pourtant suivi le tuto à la lettre et ai bien les deux périphériques requis (microphone et hauts-parleurs), quelqu'un pourrait-il m'aider à corriger les erreurs ?
« Modifié: Mai 05, 2017, 05:51:07 pm par Computer Mail »

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re: Capturer un son puis le diffuser
« Réponse #1 le: Mai 05, 2017, 06:40:49 pm »
Salut. sound.play() n'est pas bloquant, heureusement. imagines, tu serais obligé de faire un thread par son dans un jeu... :)

Computer Mail

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Re: Capturer un son puis le diffuser
« Réponse #2 le: Mai 05, 2017, 08:08:31 pm »
Formidable merci.