Controle du son de 2 musiques dans le même FLASH

cs_winnies Messages postés 4 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 9 avril 2009 - 9 avril 2009 à 12:25
cs_winnies Messages postés 4 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 9 avril 2009 - 9 avril 2009 à 19:50
Bonjour,

Je vous pose une question car je ne canais pas grand chose à FLASH :

J4ai déjà vu plusieurs ticket traiter de mon problème, mais je n'ai pas réussi à adapter les réponse à mon script !

J'ai récupérer un FLASH qui diffuse une musique d'ambiance et j'y ai ajouter un lecteur vidéo qui diffuse une vidéo avec du son. Mon problème est donc de couper le son de la musique d'ambiance lorsque je lance le lecteur vidéo !

Les ticket traitant du même sujet stipulent qu'il faut mettre chaque source dans un CLIP ! Mais je pense l'avoir fait et cela ne fonctionne pas :

Voici mon script pour la musique sonore :


onClipEvent (load) {
    _root.soundstatus = "on";
    _root.mySound = new Sound(_level0);
    vollume = 100;
    _root.mySound.setVolume(100);
}
onClipEvent (enterFrame) {
    if (_root.soundstatus == "off") {
        if (vollume>0) {
            vollume = vollume-20;
            _root.mySound.setVolume(vollume);
        }
    } else {
        if (vollume<100) {
            vollume = vollume+20;
            _root.mySound.setVolume(vollume);
        }
    }
}
on (release) {
    if (_root.soundstatus == "on") {
        _root.soundstatus = "off";
        gotoAndStop(2);
    } else {
        _root.soundstatus = "on";
        gotoAndStop(1);
    }
}

Et voici le script pour la vidéo :


//------ Initialisation --------
this.retour_mc._visible = true;
//------ Remplissage de la zone de texte des boutons --------
this.btn1.cadre.text = "Lecture";
this.btn2.cadre.text = "Pause";
this.btn3.cadre.text = "Stop";
this.btn4.cadre.text = ">>";
this.btn5.cadre.text = "|<<";

//------ Declaration objet NetConnection --------
//#################################################################
//# La classe NetConnection permet de lire des fichiers FLV en    #
//# flux continu à partir d'un lecteur local ou d'une adresse HTTP#
//################################################################# 
var netConn:NetConnection = new NetConnection();

//------ Affectation de la connection a une connection locale streamee
this.netConn.connect(null);

//------ Declaration oblet NetStream ------------
//###############################################################
//# La classe NetStream fournit des méthodes et des             #
//# propriétés permettant de lire des fichiers Flash Video (FLV)#
//###############################################################
var netStream:NetStream = new NetStream(netConn);

//------ Association de la video NetStream a un objet Video -----
this.zonevideo_as.attachVideo(netStream);
//------ Reglage du Buffer en secondes ------------
this.netStream.setBufferTime(5);
//Si lecture directe des la mise en cache (pas de pression sur bouton play), retirer le commentaire
//this.netStream.play("nemo.flv");
//------ Affectation des boutons ------------
this.btn1.onRelease = function() {
    this._parent.netStream.play("chaletxpo.flv");
    // lance la video
};
//--------------------------------
this.btn2.onRelease = function() {
    this._parent.netStream.pause();
    // met la video en pause/relance la video   
};
//--------------------------------
this.btn3.onRelease = function() {
    this._parent.netStream.close();
    // arrete la video, en realite : coupure de la connection
};
//------------------------------
this.btn4.onPress = function() {
    this.onEnterFrame = function() {
        netStream.seek(netStream.time+0.2);
        // avance rapide de la video
    };
};
//--------
this.btn4.onRelease = function() {
    delete this.onEnterFrame;
    // supprime le onEnterFrame
};
//--------------------------------
this.btn5.onRelease = function() {
    netStream.seek(0);
    // retourne a la premiere image de la video
};
// ------- Affichage de la duree de la video ----------
var interval:Number = setInterval(duree, 500, netStream);
function duree(netStream) {
    var netStream_secondes:Number = netStream.time;
    var minutes:Number = Math.floor(netStream_secondes/60);
    var heures:Number = Math.floor(minutes/60);
    var secondes = Math.floor(netStream_secondes%60);
    if (secondes<10) {
        secondes = "0"+secondes;
    }
    duree_txt.text = heures+":"+minutes+":"+secondes;
}
//-----------
this.stop();

Lorsque je veut baisser le son de la musique d'ambiance, c'est l'ensemble sonore qui est baissé.
j'insère la commande :             _root.mySound.setVolume(0);
dans l'action du bouton de lecture de la vidéo. Mais cela me baisse l'ensemble !

Par contre, seul point positif,
lorsque j'insère :   mySound.stop();
cette commande m'arrêt seulement la musique d'ambiance et laisse entendre le son du lecteur vidéo, mais ensuite, le bouton ON/OFF de la musique d'ambiance ne veut plus redémarrer la musique de fons et la commande  mySound.start(0,99)  ne redémarre pas la musique d'ambiance !

Je suis un peut perdu, j'ai essayé plein de possibilités, mais.......je n'y arrive pas....
Je vous remercie d'avance de votre aide.
Merci d'avance.
Nicolas

4 réponses

cs_winnies Messages postés 4 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 12:43
Petite précision :

Lorsque j'insère la ligne :
    _root.mySound.stop();
dans l'action du bouton de lecture du lecteur vidéo,
Alors, seule la musique d'ambiance s'arrête et on peut écouter lle son de la vidéo.

Par contre, lorsque j'insère :
    _root.mySound.setVolume(10);
dans l'action du bouton de lecture du lecteur vidéo,
Alors, c'est le son de la musique d'ambiance et le son de la vidéo qui son abaissés !

.......je ne comprend pas pourquoi......

Merci d'avance.
Merci
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
9 avril 2009 à 13:56
Hello,

C'est normal, tu n'as qu'un seul objet Sound sur ta scene.

Il faut créer un objet Sound pour chaque. 1 pour ta musique ambiance et 1 pour ta video
0
docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
9 avril 2009 à 14:49
salut
et puis .... en ecrivant  _root.mySound.setVolume(10); tu ne cibles pas ton objet mySound dans un clip comme tu dis le faire mais bien sur la scene du _parent
a+
0
cs_winnies Messages postés 4 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 19:50
Merci de votre AIDE !, c'est sympa !

Malheureusement, j'ai éssayé de faire ce que vous m'avez dit, mais je dois mal m'y prendre....

1) Si j'ai bien compris, pour la musique d'ambiance, l'objet "mySound" est déjà créé. Mais si je dois modifier son volume à partir d'un autre clip ?
dois-je insérer :
this.mySound.setVolume(100);  

Pour mettre son volume à 100 ? Mis à part le THIS je ne sais pas quoi mettre ? peut-être le nom du clip du lecteur vidéo ou celui un bouton on/off du lecteur de musique d'ambiance ?

2) Pour créer un objet pour le son de la vidéo, je suis un peut perdu car je me pert dans les nom des variables.
Pouvez-vous m'inscrire les lignes de scripts à mettre pour que je comprenne où se trouve les nom de clip, les objet, les variables, etc...

Merci par avance...
0
Rejoignez-nous