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

Langage Delphi Discussion :

Faire jouer un fichier Wav par un stream?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut Faire jouer un fichier Wav par un stream?
    Bonjour,

    Pouvez-vous m'aider, comment exécuter un fichier Wav à partir d'un TmemoryStream?

    Voici ce qui fonctionne, je récupère un fichier Wav dans une base de données
    et je sauvegarde le fichier sur le disque puis avec TmediaPlayer je le récupére pour le faire jouer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ..
     FileStream := TMemoryStream.Create;
    ..get audio from DataBase
    sAudio:='E:\Audio1.wav';
     FileStream.SaveToFile(sAudio);
    ..
    MediaPlayer1.FileName := sAudio;
    MediaPlayer1.Open;
    MediaPlayer1.play;
    J'aimerais bien à ne pas faire enregistrer le fichier audio sur le disque, mais de le faire jouer directement avec le mediaPlayer1.

    Ma question, comment donner au mediaPlayer1 un stream wav pour le faire jouer, merci beaucoup pour votre aide.

    Salutation

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si tu as un WAV encodé dans ta base. Il n'est pas venu tout seul.
    En regardant comment est enregistré le WAV dans la base tu pourra en déduire la manière de l'extraire.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut
    J'arrive à extraire le fichier en le sauvegardant sur le disque mais le but est de ne pas le faire enregistrer sur le disque mais de le faire jouer directement par le mediaplayer !
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MediaPlayer1.?? := FileStream. ??

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    je pense qu'il faut passer par l'API Windows

    exemple http://www.scalabium.com/faq/dct0091.htm

    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
     
    var
      b: TBlobStream;
      m: TMemoryStream;
    begin
      b := TBlobStream.Create(yourTable, bmRead);
      try
        m := TMemoryStream.Create;
        try
          {copy a wav from BLOB into memory}
          m.CopyFrom(b, b.Size);
     
          {Play it but if we'll have an error, raise exception}
          Win32Check(PlaySound(m.Memory, 0, SND_SYNC or SND_MEMORY));
        finally
          m.Free
        end;
      finally
        b.Free
      end;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut
    Hello,
    Super grand merci pour ton exemple c'est exactement ça qui me faut mais ..., en cherchant très longtemps une solution je constate aussi des inconvénients de Tmediaplayer et PlaySound! Si j'ai bien compris c'est impossible de passer un stream au mediaplayer avec PlaySound c'est possible!
    Mais avec mediaplayer on peut avoir la durer en ms du Wav ou MP3 dont avec PlaySound ceci est impossible. Dans mon cas j'ai besoin le temps total d'écoute d'un audio en ms et de pouvoir faire jouer du wav et mp3. Ainsi je pense que je préfère opter pour le choix du mediaplayer même si je dois d'abord sauvegarder l'audio sur le disque dure....
    Merci et bonne journée

Discussions similaires

  1. Envoyer un fichier wav par modem
    Par jhmallot dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 23/07/2013, 14h45
  2. jouer un fichier wav via les resource
    Par uriotcea dans le forum Qt
    Réponses: 8
    Dernier message: 16/05/2008, 07h25
  3. Comment faire jouer un fichier musical
    Par emyblue dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/11/2006, 22h59
  4. Avec VBE, faire jouer un son .Wav
    Par francois1955 dans le forum Général VBA
    Réponses: 6
    Dernier message: 09/12/2005, 15h45
  5. [Kylix] jouer un fichier wav avec kilyx
    Par JlouisI dans le forum EDI
    Réponses: 1
    Dernier message: 14/06/2002, 02h05

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