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

API, COM et SDKs Delphi Discussion :

DirectSound: simulation de Buffer


Sujet :

API, COM et SDKs Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Points : 37
    Points
    37
    Par défaut DirectSound: simulation de Buffer
    Bonjour,

    depuis quelques semaines je travaille sur DirectSound.
    Je peux donc lire des fichiers WAVES linéaires 8 et 16 bits.
    Cependant, j'ai besoin de concevoir un Buffer identique au Buffer DirectSound (inaccessible sur certaines propriétés).

    Ma question :
    Je charge un fichier WAVE à partir d'un TFileStream que je transmet au Buffer directSound :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DSBuffer.Lock(BeginPos,
                               BuffLength,
                               AudioPTR1,
                               AudioBytes1,
                               AudioPTR2,
                               AudioBytes2,
                               0);
     
    Datas.Read(AudioPTRtmp8[0],AudioBytes1);
     
    CopyMemory(AudioPTR1, AudioPTRtmp8, BuffTransLength);
     
    DSBuffer.Unlock(AudioPTR1,AudioBytes1,audioptr2,audiobytes2);
    BeginPos : Position dans le fichier à partir de laquelle je veux envoyer les données à DSound.
    BuffLength : Taille du buffer souhaité
    AudioPTR1 : Pointeur vers la zone mémoire locked où je transfere les données
    AudioBytes1: Taille que DSOund a pu charger.

    Comment dois-je faire pour avoir strictement le même buffer que DSound ?
    Pour le moment je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CopyMemory( @Buf8 [BeginPos],  AudioPTR, Length);
    Est-ce que c'est ca ? Ou non ?
    Je n'ai pas de moyens de vérifier.
    Enfin, dernière question, comment obtenir la position générale dans le fichier (et non dans le Buffer) ?

    Meric de votre aide

  2. #2
    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 448
    Points
    28 448
    Par défaut
    Citation Envoyé par mbsofts
    Enfin, dernière question, comment obtenir la position générale dans le fichier (et non dans le Buffer) ?

    Meric de votre aide
    je n'ai pas bien compris le début, mais quand à la position dans le fichier, DirectSound l'ignore, il faut la déterminer en fonction du nombre de buffers envoyés à DirectSound et de la position dans le buffer en cours.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Points : 37
    Points
    37
    Par défaut
    je souhaite en fait simplement reproduire le buffer interne de DirectSound pour pouvoir savoir exactement où j'en suis dans la lecture et pouvoir fournir les 512 octets (par exemple) suivants la position de lecture pour alimenter un vumetre par exemple.

  4. #4
    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
    Si tu n'est pas allergique au C++, tu peux toujours jeter un oeil ici
    http://leonard.oxg.free.fr/

    vas dans la rubrique "articles"

    C'est bien fait et ça peut répondre à ta question
    Bidouilleuse Delphi

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Points : 37
    Points
    37
    Par défaut
    je ne suis pas du tout allergique.
    Je me suis penché sur cette explication en C et en fait c'est ce que j'ai fait car je savais déjà alimenter un Buffer DirectSound.
    Ma question porte sur un Buffer que je créé moi-même: comment le modéliser pour obtenir strictement le même buffer que directsound ?

Discussions similaires

  1. [debutant][directsound][vc++] lire le primary buffer
    Par hiko-seijuro dans le forum DirectX
    Réponses: 4
    Dernier message: 06/05/2006, 15h19
  2. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51
  3. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00
  4. Réponses: 1
    Dernier message: 27/05/2002, 01h44
  5. Alpha blending et Z-buffer directx 8
    Par Cesar4 dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h58

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