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

Silverlight Discussion :

Jouer un son avec silverlight


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 76
    Par défaut Jouer un son avec silverlight
    Bonjour à tous,

    je souhaiterais jouer une petite musique en fond de mon application Silverlight.

    j'ai trouvé différents tutos / questions / explications sur la toile mais malgré tout, Silverlight refuse obstinément de me jouer mes sons. (Qui sont aux formats .wma et .mp3)

    Voici donc comment j'ai procédé :

    J'ai donc mon Usercontrol avec l'attribut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loaded="UserControl_Loaded"
    Dans mon UserControl_Loaded, je fais ceci :

    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
             private MediaElement sontest;
     
    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
            screenWidth = Convert.ToInt32(parent.Width);
            screenHeight = Convert.ToInt32(parent.Height);
     
            this.KeyDown += new KeyEventHandler(Page_KeyDown);
            this.KeyUp += new KeyEventHandler(Page_KeyUp);
     
            ListSprite = new List<Sprite>();
            spriteRotate = new List<RotateTransform>();
     
            sontest = new MediaElement();
            sontest.Source = new Uri("laserFire.wma", UriKind.RelativeOrAbsolute);
    }
    Et dans mon menu principal, il y a 3 boutons :

    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
            void ClickBtn1P(Object sender, RoutedEventArgs e)
            {
                // start the game
                numLevel = 1;
                endMainMenu();
            }
     
            void ClickBtn2P(object sender, RoutedEventArgs e)
            {
                sontest.Play();
            }
     
            void ClickBtnOptn(object sender, RoutedEventArgs e)
            {
                //To do : implement the Options
                Bouton3.Content = sontest.CurrentState;
                //sontest.Stop();
            }
    J'ai donc cliqué sur le bouton 2P, ce qui ne fait... pas grand chose au premier abord.

    En cliquant juste après sur le bouton Optn, j'obtiens un "1", ce qui correspond à un 0.

    Mes fichiers sons sont à la racine de ma solution.

    Existe-t-il un problème dans ce que j'ai fait?

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Tu n'as pas rajouté ton MediaElement dans ta Page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LayoutRoot.Children.Add(sontest);
    Vérifie également si tu as bien mis tes sons en Resource (clic droit -> Properties -> Build Option)

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 76
    Par défaut
    Comment les met-on en Resource?

  4. #4
    Membre chevronné Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Par défaut
    Si tu fais un click droit sur ton fichier son dans ton explorateur de solution, tu as l'option propriétés. Là, tu as la possibilité de définir ton fichier entant que 'resource'.

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Noobboy Voir le message
    Comment les met-on en Resource?
    C'est pas parce que c'est entre parenthèses qu'il ne faut pas lire

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 76
    Par défaut
    Oui, désolé Skyounet, j'ai tapé trop vite...

    ça marche maintenant, Merci beaucoup à vous deux!


  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 76
    Par défaut
    Je reviens à la charge avec une autre question...

    J'utilise un son en background qui est joué dans mon UserControl_Loaded (cf. au dessus)

    Et mon son est abonné à l'évènement MediaEnded.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            void Background_MediaEnded(Object sender, RoutedEventArgs e)
            {
                ((MediaElement)sender).Position = System.TimeSpan.FromSeconds(0);
                ((MediaElement)sender).Play();
            }
    Je veux par la suite jouer un son ponctuel (lors d'un tir de missile)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            private void play_sound(string s)
            {
                MediaElement media = new MediaElement();
                media.Source = new Uri(s, UriKind.Relative);
                media.MediaEnded += new RoutedEventHandler(Shortsound_MediaEnded);
                media.Loaded += new RoutedEventHandler(Shortsound_Loaded);
                media.Volume = 1;
                media.AutoPlay = false;
                parent.Children.Add(media);
                sontest.Pause();
                //parent.Children.Remove(media);
            }
    Mon son court est abonné à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            void Shortsound_MediaEnded(Object sender, RoutedEventArgs e)
            {
                parent.Children.Remove((MediaElement)sender);
                sontest.Play();
            }
     
            void Shortsound_Loaded(Object sender, RoutedEventArgs e)
            {
                ((MediaElement)sender).Position = new TimeSpan(0);
                ((MediaElement)sender).Play();
            }
    Mon problème est donc que je lorsque je joue un son court, le background sound s'arrête et ne redémarre plus alors que je lui ait demandé de se relancer lorsque le son court s'arrête...

    Mes sons sont en Resources.

    Merci

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

Discussions similaires

  1. Jouer un son avec pygame dans la console
    Par aadrun dans le forum Général Python
    Réponses: 2
    Dernier message: 09/09/2013, 16h04
  2. Comment jouer deux sons avec la commande Playsound
    Par Yyukk dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/04/2009, 11h07
  3. Réponses: 1
    Dernier message: 10/09/2008, 14h56
  4. Comment jouer un son avec Forms
    Par michouhayoo dans le forum Forms
    Réponses: 13
    Dernier message: 21/04/2008, 10h02

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