IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

lire des fichiers son en C


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Points : 14
    Points
    14
    Par défaut lire des fichiers son en C
    bonjour,

    Quelqu'un a une idée comment on peut lire des fichiers son en C avec un interval de temps d'attente entre eux.
    je m'explique: je lis le premier fichier, aprés un delai t, je lis le deuxième fichier, aprés un délai X je lis un troisième fichier et ainsi de suite.
    Le délai entre la lecture des fichiers n'est pas constant et varie selon le fichier.

    Note: tous les fichiers son ont le même format.

    Je vous remercie d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Pour un programme de type procédural, tu peux utiliser la fonction clock().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include <time.h>
     
    int main(int argc, char* argv[])
    {
    	clock_t tempsFinal;
     
    	Pour chaque fichier
    		Lire le fichier
    		Calcul du délai X
    		tempsFinal = clock() + délai X * CLOCKS_PER_SEC;
    		while (tempsFinal < clock());
    	Fin du pour
     
    	return 0;
    }
    Pour prendre en compte le temps écoulé par la fonction qui calcul le délai X:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <time.h>
     
    int main(int argc, char* argv[])
    {
    	clock_t tempsFinal;
    	clock_t tempsInitial;
     
    	Pour chaque fichier
    		Lire le fichier
    		tempsInitial = clock();
    		Calcul du délai X
    		tempsFinal = tempsInitial + delai X * CLOCKS_PER_SEC;
    		while (tempsFinal < clock());
    	Fin du pour
     
    	return 0;
    }
    Tu peux également mettre "tempsInitial = clock();" avant "Lire le fichier" si le délai X est entre chaque délai.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par cameleon65 Voir le message
    Pour un programme de type procédural, tu peux utiliser la fonction clock().
    Mouais. clock sert à donner la durée d'utilisation du processeur par le programme. Mais il y a une différence entre "durée d'utilisation du processeur" et "durée perçue par l'utilisateur".

    Moi j'irais plus simplement sur sleep()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pour chaque fichier
    	Lire le fichier
    	Calcul du délai X
    	sleep(X)
    Fin du pour

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    Merci pour les réponses,

    Avec la fonction sleep(), ça l'air de marcher.
    Je vais essayer avec l'autre solution.

    En fait l'idée est qu'il ya un texte audio qui est divisé en plusieurs fichiers et le but du jeu est d'automatiser la lecture du texte en lisant chaque fois un fichier et en respectant les delais avant la lecture du fichier suivant

    Merci encore une fois

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Mouais. clock sert à donner la durée d'utilisation du processeur par le programme. Mais il y a une différence entre "durée d'utilisation du processeur" et "durée perçue par l'utilisateur".

    Moi j'irais plus simplement sur sleep()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pour chaque fichier
    	Lire le fichier
    	Calcul du délai X
    	sleep(X)
    Fin du pour
    C'est quoi la différence ?

    Le compilateur GCC sous windows me donne cette erreur lorsque j'utilise sleep():

    undefined reference to `sleep'

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    sleep(délai en secondes) est une fonction POSIX. Sous Windows, utiliser Sleep(délai en millisecondes).

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 755
    Points
    23 755
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    sleep(délai en secondes) est une fonction POSIX. Sous Windows, utiliser Sleep(délai en millisecondes).
    Je n'utilise pas GCC sous Windows, mais il est possible qu'il dispose de la fonction POSIX quand même. Dans tous les cas, ne pas oublier le header associé :


  8. #8
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Ok, il faut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <windows.h>
     
    int main(int argc, char* argv[])
    {
    	Sleep(10000);	//En ms.
     
    	return 0;
    }

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    bonjour voici une fonction pour le délai en seconds

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include<time.h>
     
    void my_delay(int i)
    {
        clock_t start,end;
        start=clock();
        while(((end=clock())-start)<=i*CLOCKS_PER_SEC);
    }
    dans le corp du programme main() vous faites l'appel a cette fonction et vous mettez my_delay(nombre de secondes);
    j'èspère que ça sera utile pour vous.

Discussions similaires

  1. Lire des fichiers sons de façon séquentielle
    Par gerard1638 dans le forum JavaFX
    Réponses: 2
    Dernier message: 29/08/2014, 08h26
  2. [Audio]Lire des fichiers sons
    Par Ender dans le forum Multimédia
    Réponses: 6
    Dernier message: 05/10/2005, 01h50
  3. Lire des fichiers .mpc
    Par Thrystan dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 11/12/2004, 13h15
  4. [TP]comment faire pour lire un fichier son
    Par sovo dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 19/09/2004, 19h33
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo