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

jQuery Discussion :

Audio HTML5, gestion du son crescendo et decrescendo


Sujet :

jQuery

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut Audio HTML5, gestion du son crescendo et decrescendo
    Bonjour.

    Sur mon projet actuel en Ajax, une ambiance sonore est générée comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <audio src="music.mp3" id="music" autoplay="activate" loop="activate">
    		Your browser does not support the audio element.
    	</audio>
    dans le footer et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //gestion de la musique
    	$('#musicOff').click(function() {
    		$('#music').get(0).pause();
    		$(this).toggleClass('active');
    		$('#musicOn').toggleClass('active');
    	});
    	$('#musicOn').click(function() {
    		$('#music').get(0).play();
    		$(this).toggleClass('active');
    		$('#musicOff').toggleClass('active');
    	});
    dans le fichier de script en Javascript.

    Sur l'une des pages, j'ai ajouté un player vidéo et j'ai fait en sorte que le son se coupe lors de la lecture de la vidéo et qu'il revienne une fois la vidéo sur pause ou terminée.
    Or pour que le changement de son soit moins aggressif, il m'est demandé de couper le son du site et de le faire revenir en crescendo. Et je ne trouve aucune info sur le net...

    Quelqu'un aurait-il une solution à me proposer ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    en incrémentait une variable vol dans une boucle?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('#music').get(0).volume=vol;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('#musicOn').click(function() {
            //$('#music').get(0).play();
    		$(this).toggleClass('active');
    		$('#musicOff').toggleClass('active');
    		for (i=0; i<=100; i++){
    			$('#music').get(0).volume=i;
    		};
        });
    ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#music').delay(500*i).get(0).volume=i;
    ???
    sinon avec un setInterval
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    <audio id="music" src="Sérénad.mp3" controls="controls"></audio>.

    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
    19
    20
    // console.log($("#music")[0]);
     
    var volMusicInterval = null,
    	volIncrease = function(){
    		var elem = $("#music")[0];
     
    		if (elem.volume < 1){
    			elem.volume = elem.volume + 0.20;
    		} else {
    			clearInterval(volMusicInterval);
    		}
     
    		// console.log(elem.volume);
    	};
     
    $("#music").click(function(){
    	this.volume = 0.20;
     
    	volMusicInterval = setInterval(volIncrease, 2000);
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    Ah merci danielhagnoul, le bouton on avec le crescendo marche nickel
    par contre j'ai essayé de suivre le même modèle pour le bouton off avec le decrescendo mais ça ne marche pas...
    un indice pour me mettre sur la voie ?

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    //gestion de la musique
    	var volMusicInterval = null,
    	volIncrease = function(){
    		var elem = $("#music")[0];
     
    		if (elem.volume < 1){
    			elem.volume = elem.volume + 0.20;
    		} else {
    			clearInterval(volMusicInterval);
    		}
     
    	};
    	volDecrease = function(){
    		var elem = $("#music")[0];
     
    		if (elem.volume > 99){
    			elem.volume = elem.volume - 0.20;
    		} else {
    			clearInterval(volMusicInterval);
    		}
     
    	};
    	$("#musicOn").click(function(){
    	$("#music")[0].volume = 0.20;
     
    	volMusicInterval = setInterval(volIncrease, 2000);
    	});
    	$("#musicOff").click(function(){
    	$("#music")[0].volume = 100;
     
    	volMusicInterval = setInterval(volDecrease, 2000);
    	});

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben faut tester quand ça arrive à 0 pour pas avoir de volume négatif ... non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    oui j'imagine qu'il va falloir le faire, mais avant tout il faudrait que le son diminue. Or là il ne diminue pas... il n'y a aucun effet suite au clic sur le bouton musicOff.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben t'es sur qu'au depart le vol est > 99 ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    le volume ne varie pas entre 0 et 100 ? Lors de mes recherches c'est ce que j'avais trouvé il me semble...
    edit:
    ah! à moins que ce ne soit des pourcentages et dans ce cas là alors ce n'est pas 100 dans mon cas...

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    certes, mais qui te dit qu'au moment ou tu cliques sur le bouton diminuer le volume est supérieur à 99 ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    Moi car je le défini à 100 avant de lancer la fonction non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $("#musicOff").click(function(){
    	$("#music")[0].volume = 100;
     
    	volMusicInterval = setInterval(volDecrease, 2000);
    	});
    comme pour le crescendo, même si le son est déjà lancé, on a défini le volume à 0.20 donc le volume baisse d'un coup puis augmente petit à petit grâce à la fonction volIncrease. Or vu que le volume est sencé être déjà à 0 ça ne se remarque pas.

  13. #13
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    J'ai testé uniquement sur Google, le volume va de 0 à 1 !

    Avec l'exemple du crescendo, ce ne devrait pas être trop difficile.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  14. #14
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    okay merci

    du coup j'ai mes deux petites fonction volIncrease et volDecrease, qui sont appelées lors du clic sur "on" ou "off". ça marche très bien...
    sauf que, après avoir cliqué sur "off" et que le volume soit descendu à 0, lorsque je veux ré-augmenter le volume en cliquant sur "on" et bien les deux fonctions entrent en conflit et le volume se met donc à varier entre 0.20 et 0.
    (situation inverse, d'abord "on" puis "off", le volume varie continuellement entre 0.80 et 1)

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    //gestion de la musique
    	var volMusicInterval = null,
    	volIncrease = function(){
    		var elem = $("#music")[0];
     
    		if (elem.volume < 1){
    			elem.volume = elem.volume + 0.20;
    		} else {
    			clearInterval(volMusicInterval);
    		}
     
    	};
    	volDecrease = function(){
    		var elem = $("#music")[0];
     
    		if (elem.volume > 0){
    			elem.volume = elem.volume - 0.20;
    		} else {
    			clearInterval(volMusicInterval);
    		}
     
    	};
    	$("#musicOn").click(function(){
    	$("#music")[0].volume = 0.20;
     
    	volMusicInterval = setInterval(volIncrease, 200);
    	});
    	$("#musicOff").click(function(){
    	$("#music")[0].volume = 0.80;
     
    	volMusicInterval = setInterval(volDecrease, 200);
    	});
    en fait je ne comprend pas bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clearInterval(volMusicInterval);
    ça sert à quoi concrêtement ?
    il n'y aurait pas un moyen de dire a la fonction de s'arrêter totalement après le setInterval ?

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clearInterval(volMusicInterval);
    ça sert à quoi concrêtement ?
    il n'y aurait pas un moyen de dire a la fonction de s'arrêter totalement après le setInterval ?
    Tu t'es répondu tout seul
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  16. #16
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Que donne le code suivant ?

    Attention à l'écriture du code, faire la distinction entre la virgule (on continue la déclaration des variables) et le point-virgule (on termine la déclaration des variables).

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    var increaseVolMusicInterval = null,
    	decreaseVolMusicInterval = null,
    	volIncrease = function(){
    		var elem = $("#music")[0];
    		
    		if (elem.volume < 1){
    			elem.volume = elem.volume + 0.20;
    		} else {
    			clearInterval(increaseVolMusicInterval);
    		}
    		
    	},
    	volDecrease = function(){
    		var elem = $("#music")[0];
    		
    		if (elem.volume > 0.20){
    			elem.volume = elem.volume - 0.20;
    		} else {
    			clearInterval(decreaseVolMusicInterval);
    		}
    		
    	};
    
    $("#musicOn").click(function(){
    	$("#music")[0].volume = 0.20;
    	increaseVolMusicInterval = setInterval(volIncrease, 2000);
    	return false;
    });
    
    $("#musicOff").click(function(){
    	$("#music")[0].volume = 0.80;
    	decreaseVolMusicInterval = setInterval(volDecrease, 2000);
    	return false;
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  17. #17
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Par défaut
    c'est tout ce qu'il me fallait merci
    j'ai réduit la vitesse à 500.

    Maintenant il ne me reste plus qu'à intégrer ce code dans celui du lecteur vidéo pour que ce crescendo et decrescendo s'activent quand on lance ou arrête la vidéo. J'ai fait des essais non concluants pour l'instant mais je vais persévérer.

    merci pour votre aide danielhagnoul et SpaceFrog.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Audio] gestion carte son
    Par willard dans le forum Multimédia
    Réponses: 3
    Dernier message: 03/02/2009, 16h50
  2. Gestion de sons
    Par Ekinoks dans le forum C
    Réponses: 7
    Dernier message: 14/06/2005, 00h54
  3. [TP]Gestion du son
    Par JaVaCode dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 17/12/2004, 21h38
  4. Réponses: 4
    Dernier message: 14/12/2004, 17h37
  5. [flash mx]la gestion du son et de la video
    Par freshguicha dans le forum Flash
    Réponses: 5
    Dernier message: 03/04/2004, 12h50

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