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

Composants VCL Delphi Discussion :

Problème de son avec un TMediaplayer


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut Problème de son avec un TMediaplayer
    Salut a tout le monde, j'ai un petit probleme avec un Tmediaplayer.

    J'essaye de faire une horloge parlante (projet peut etre audacieux pour moi) pour ca j'utilise un Tmediaplayer, 3 labels, un timer et un bouton. dans les 3 lebels sont stockés les heures, les minutes et les secondes. Le timer fait chenger les label.caption toute les secondes et le bouton est la pour lancer la voix. Mais je ne comprend pas pourquoi mon son ne se joue pas.

    La c'est juste l'éboche : le programme ne pouvoir lire ques le heures et jusqu'a 19h. Mais aucun son n'est joué.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    unit horloge;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, MPlayer;
     
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Timer1: TTimer;
        MediaPlayer1: TMediaPlayer;
        Button1: TButton;
        procedure Timer1Timer(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    var h, min, sec : string ;
    begin
            edit1.text:=timetostr(time) ;
            h:=copy(edit1.Text,0,2) ;
            label1.Caption:=h ;
            min:=copy(edit1.Text,4,2) ;
            label2.Caption:=min ;
            sec:=copy(edit1.Text,7,2) ;
            label3.Caption:=sec ;
     
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var hs, hs2, hs3, mins, secs : string ;
    begin
            case strtoint(label1.Caption) of
                    1 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\1.wav' ;
                    2 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\2.wav' ;
                    3 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\3.wav' ;
                    4 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\4.wav' ;
                    5 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\5.wav' ;
                    6 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\6.wav' ;
                    7 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\7.wav' ;
                    8 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\8.wav' ;
                    9 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\9.wav' ;
                    10 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\10.wav' ;
                    11 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\11.wav' ;
                    12 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\12.wav' ;
                    13 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\13.wav' ;
                    14 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\14.wav' ;
                    15 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\15.wav' ;
                    16 : hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\16.wav' ;
                    17 : begin
                            hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\10.wav';
                            hs2:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\7.wav' ;
                            end;
                    18 : begin
                            hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\10.wav' ;
                            hs2:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\8.wav' ;
                            end;
                    19 : begin
                            hs:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\10.wav' ;
                            hs2:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\9.wav' ;
                            end;
                    end ;
            mediaplayer1.wait:=true ;
            mediaplayer1.FileName:=hs ;
            mediaplayer1.open ;
            mediaplayer1.Play ;
     
     
    end;
     
    end.


    Merci de votre aide, en esperant avoir était assez clair. N'hésiter pas a me poser des questions pour plus de précisions.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Points : 85
    Points
    85
    Par défaut
    déjà je te conseil de mettre tes fichiers wav en ressource

    voilà un exemple :
    http://delphicool.developpez.com/sources/src/php/2.php

    ensuite fait des tests simple genre if strtoint(label1.Caption) = 1 then begin...

    je vois pas où le code plante, c'est peu être à cause du string hs....

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Ok merci. Je vais essayer de faire des test et je previens si ca marche ou si ca marche pas.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Points : 85
    Points
    85
    Par défaut
    voilà le lien que je cherchais :
    http://delphicool.developpez.com/tut/utiliz_ressources/


    pour gagner un peu en taille tu peux utiliser des mp3.

    voilà qui permet depuis une ressource de loader et jouer un mp3 avec MediaPlayer :

    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
    function LoadBytesFromRessourceName(aResName: String): TBByteArray;
    var
      resHnd           : HRsrc;
      memHnd           : HGlobal;
      p                : Pointer;
      size             : Integer;
    begin
      resHnd := FindResource(HInstance, PChar(aResName), RT_RCDATA);
      Assert(resHnd <> 0, 'BResUtils.LoadBytesFromRessourceName');
      memHnd := LoadResource(HInstance, resHnd);
      p := LockResource(memHnd);
      size := SizeofResource(HInstance, resHnd);
      SetLength(result, size);
      Move(p^, result[0], size);
      UnlockResource(memHnd);
      FreeResource(memHnd);
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      MediaPlayer1.FileName := PCHAR(LoadBytesFromRessourceName('zic'));
      MediaPlayer1.Open;
      MediaPlayer1.Play;
    end;

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Bon la je comprend vraiment plus rien : Meme ca ca ne marche pas :
    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
    35
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, MPlayer, StdCtrls;
     
    type
      TForm1 = class(TForm)
        MediaPlayer1: TMediaPlayer;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     
            mediaplayer1.FileName:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\Thierry Midi\2- Maman papa.wav' ;
            mediaplayer1.Start ;
            mediaplayer1.Play ;
    end;
     
    end.
    Cela vient peut etre des réglages du mediaplayer :
    Autoenable : true
    autoopen : true
    devicetype : dtwaveaudio (je ne l'est pas régler sur dtautoselect car il en résulte une erreur)

    Demandez moi pour d'autre information.

    Quant au fichier ressource, ca ne marche pas non plus.

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Salut,
    Et au niveau du volume de ta carte son, c'est actif, au maximum ? (propriétés audio de Windows --> Sons Wave)

    Sinon, je déclarerais (si j'étais toi), une constante Chemin pour ne pas avoir à se "trimballer" toute tes chaînes de caratère identiques et si longues. Comme ça par exemple :
    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
    35
    36
    procedure TForm1.Button1Click(Sender: TObject);
    const Chemin=:='C:\Documents and Settings\Jeannot Alpin\Mes documents\Ma musique\SON HORLOGE LE VRAI\';
    var hs, hs2, hs3, mins, secs : string;
         heure:integer;
    begin
           heure:= strtoint(label1.Caption);
           hs2:='';
            case heure of
                    1..16,20 :  hs:=Chemin+Inttostr(heure)+'.wav';
                    17..19:begin
                                 hs:=Chemin+'10.wav';
                                 hs2:=Chemin+Inttostr(heure-10)+'.wav';
                              end;
                    21..23:begin
                                 hs:=Chemin+'20.wav';
                                 hs2:=Chemin+Inttostr(heure-20)+'.wav';
                              end;
                   0,24:hs:=Chemin+'minuit.wav';
            end ;
            mediaplayer1.Enabled:=true;
            mediaplayer1.FileName:=hs ;
            mediaplayer1.open ;
            mediaplayer1.wait:=true ; 
            mediaplayer1.Play ;
     
            if hs2<>'' then
            begin
               mediaplayer1.FileName:=hs2;
               mediaplayer1.open ;
               mediaplayer1.wait:=true ;
               mediaplayer1.Play ;           
            end; 
     
    end;
     
    end.
    sinon, ne pas ooublier cette ligne, des fois que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mediaplayer1.Enabled:=true;
    Enfin, une dernière chose , il faut mettre cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mediaplayer1.wait:=true ;
    ...juste avant la commande :
    Sinon, tu n'entendras jamais le premier son (hs), si il y en a un deuxième à jouer (hs2)
    Bidouilleuse Delphi

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Merci beaucoup je vais essayer. J'éditerais si ca marche ou pas.

    EDIT : ca marche toujours pas : aucun son ne sort des hauts parleur.

    EDIT2 : C'est bon ca marche c'était (apparamment) un probleme de réglages du mediaplayer.

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Probablement que le liens suivants t'intéresseront...

    http://www.developpez.net/forums/vie...227936#1227936
    http://www.thevbzone.com/l_res.htm

    Perso, je ne trouve pas bonne l'idée d'utiliser TMediaPlayer pour réaliser ce genre de programme (trop lourd) ! Essaye plutot avec la fonction SndPlaySound (unité mmSystem), ce sera déjà plus simple... Je te conseille surtout DirectSound (c'est le plus rapide de tous), tu pourras même jouer plusieurs samples en même temps ou les faire chevaucher. J'ai fait une démo avec les sources complètes (pas de compo à installer), regarde dans ce sujet :

    http://www.developpez.net/forums/viewtopic.php?t=78391

    Y'avait aussi ce sujet dans le forum PHP, tu trouveras quelques réponses peut-être...
    Zut, je n'arrive plus à le retrouver, il est délesté, tanpis. à+
    De retour parmis vous après 10 ans!!

Discussions similaires

  1. Probléme de son avec Toshiba Satellite P105-6177
    Par khadir dans le forum Composants
    Réponses: 10
    Dernier message: 02/08/2007, 14h33
  2. Problème de son avec VLC
    Par geol99 dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 01/08/2007, 17h31
  3. Problème de son avec un fichier swf
    Par dongnold dans le forum Flash
    Réponses: 5
    Dernier message: 31/12/2006, 07h08
  4. Problème de son avec un micro
    Par snoopy69 dans le forum Windows XP
    Réponses: 7
    Dernier message: 27/11/2006, 19h22
  5. [Audio]Problème de son avec carte TV Pinnacle
    Par arnaud_verlaine dans le forum Périphériques
    Réponses: 2
    Dernier message: 14/09/2006, 14h09

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