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

DirectX Discussion :

DirectSound...


Sujet :

DirectX

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Points : 1
    Points
    1
    Par défaut DirectSound...
    Bonjour.

    Je programme actuellement en utilisant MsVisual C++6 et DirectX 8.1.
    En fait j'essaye... et ca marche pas!

    J'ai crée une simple application win32 avec Visual C++ puis g rajouté :

    et dans la "fonction principale" (après le //TODO ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LPDIRECTSOUND lpDirectSound; 
    HRESULT       hr;
    hr = DirectSoundCreate(NULL, &lpDirectSound, NULL);
    Puis j'ai tout recompilé => Il manque un point virgule dans dsound.h... je ne pense pas que l'erreur provienne de dsound.h mais plutot que c'est une erreur dans mon code...mais où ???
    Ca fait plusieurs jours que je cherche et j'ai toujours pas trouvé! Aidez moi SVP!

  2. #2
    mat.M
    Invité(e)
    Par défaut
    * s'il ya #include <stdafx.h> , tu utilises les en-tête précompilés . Ne pas les utiliser .Recréer le projet mais en sélectionnant projet vide
    *les chemins pour les librairies et include de Dx ne sont pas valides ou bien configurés.
    *Sinon c'est une erreur dans le code.Mais sans code source....

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bon j'ai trouvé le problème. Fallait inclure mmregs.h ainsi que la librairi dsound.lib

    Pour ce qui en est du code source j'ai mis tout ce que j'ai modifié....

    Merci quand même.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 115
    Points : 98
    Points
    98
    Par défaut
    en fait, tu est pas obligé d'integrer une autre librairie,
    suffit de definir :
    #define INITGUID
    et ca marche tout seul si on a mis le dsound.lib dans project>settings>links

    @++

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut je cherche des sources directsound avec des fonctions de base comme la lecture en simultané de plusiers wav principalement, mais tou t ce que je trouve me semble trop complexe. Vous pouvez m'aider?

    De - Fre

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    up.

    Merci de votre aide.

    De - Fre

  7. #7
    mat.M
    Invité(e)
    Par défaut
    mais tou t ce que je trouve me semble trop complexe
    On ne peut y échapper car pour jouer plusieurs sons en simultané il faut décrypter un fichier WAV et le copier sur un ou plusieurs tampons DSound.
    Le livre "Inside Direct X" de MS Press aborde le sujet

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    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
    88
    89
    90
    91
    92
    93
    94
    95
    //-----------------------------------------------------------------------------
    // Name: CSoundManager::CreateStreaming()
    // Desc: 
    //-----------------------------------------------------------------------------
    HRESULT CSoundManager::CreateStreaming( CStreamingSound** ppStreamingSound, 
                                            LPTSTR strWaveFileName, 
                                            DWORD dwCreationFlags, 
                                            GUID guid3DAlgorithm,
                                            DWORD dwNotifyCount, 
                                            DWORD dwNotifySize, 
                                            HANDLE hNotifyEvent )
    {
        HRESULT hr;
     
        if( m_pDS == NULL )
            return CO_E_NOTINITIALIZED;
        if( strWaveFileName == NULL || ppStreamingSound == NULL || hNotifyEvent == NULL )
            return E_INVALIDARG;
     
        LPDIRECTSOUNDBUFFER pDSBuffer      = NULL;
    	LPDIRECTSOUNDBUFFER pDSBuffer2     = NULL;
        DWORD               dwDSBufferSize = NULL;
        CWaveFile*          pWaveFile      = NULL;
        DSBPOSITIONNOTIFY*  aPosNotify     = NULL; 
        LPDIRECTSOUNDNOTIFY pDSNotify      = NULL;
     
        pWaveFile = new CWaveFile();
        pWaveFile->Open( strWaveFileName, NULL, WAVEFILE_READ );
     
        // Figure out how big the DSound buffer should be 
        dwDSBufferSize = dwNotifySize * dwNotifyCount;
     
        // Set up the direct sound buffer.  Request the NOTIFY flag, so
        // that we are notified as the sound buffer plays.  Note, that using this flag
        // may limit the amount of hardware acceleration that can occur. 
        DSBUFFERDESC dsbd;
        ZeroMemory( &dsbd, sizeof(DSBUFFERDESC) );
        dsbd.dwSize          = sizeof(DSBUFFERDESC);
        dsbd.dwFlags         = dwCreationFlags | 
                               DSBCAPS_CTRLPOSITIONNOTIFY | 
                               DSBCAPS_GETCURRENTPOSITION2;
        dsbd.dwBufferBytes   = dwDSBufferSize;
        dsbd.guid3DAlgorithm = guid3DAlgorithm;
        dsbd.lpwfxFormat     = pWaveFile->m_pwfx;
     
     
     
    	//La on cree le buffer secondaire et on doit en créer au moins 2 diférents
        if( FAILED( hr = m_pDS->CreateSoundBuffer( &dsbd, &pDSBuffer, NULL ) ) )
        {
            // If wave format isn't then it will return 
            // either DSERR_BADFORMAT or E_INVALIDARG
            if( hr == DSERR_BADFORMAT || hr == E_INVALIDARG )
                return DXTRACE_ERR_NOMSGBOX( TEXT("CreateSoundBuffer"), hr );
     
            return DXTRACE_ERR( TEXT("CreateSoundBuffer"), hr );
        }
     
        // Create the notification events, so that we know when to fill
        // the buffer as the sound plays. 
        if( FAILED( hr = pDSBuffer->QueryInterface( IID_IDirectSoundNotify, 
                                                    (VOID**)&pDSNotify ) ) )
        {
            SAFE_DELETE( aPosNotify );
            return DXTRACE_ERR( TEXT("QueryInterface"), hr );
        }
     
        aPosNotify = new DSBPOSITIONNOTIFY[ dwNotifyCount ];
        if( aPosNotify == NULL )
            return E_OUTOFMEMORY;
     
        for( DWORD i = 0; i < dwNotifyCount; i++ )
        {
            aPosNotify[i].dwOffset     = (dwNotifySize * i) + dwNotifySize - 1;
            aPosNotify[i].hEventNotify = hNotifyEvent;             
        }
     
        // Tell DirectSound when to notify us. The notification will come in the from 
        // of signaled events that are handled in WinMain()
        if( FAILED( hr = pDSNotify->SetNotificationPositions( dwNotifyCount, 
                                                              aPosNotify ) ) )
        {
            SAFE_RELEASE( pDSNotify );
            SAFE_DELETE( aPosNotify );
            return DXTRACE_ERR( TEXT("SetNotificationPositions"), hr );
        }
     
        SAFE_RELEASE( pDSNotify );
        SAFE_DELETE( aPosNotify );
     
        // Create the sound
        *ppStreamingSound = new CStreamingSound( pDSBuffer, dwDSBufferSize, pWaveFile, dwNotifySize );
     
        return S_OK;
    }
    Voilà la fonction pour créer des buffers secondaires, et je sais l'appeler pour créer un buffer, le truc est que je dois en créer plusieurs et les lire en simultané.

    Comment fais-je pour l'appeler plusieurs fois en récupérant un nouveau buffer à chasue fois?

    je dois la modifier?

    Et pour déclencher la lecture en simultané?

    De - Fre

  9. #9
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par burkhard
    Bonjour.

    Je programme actuellement en utilisant MsVisual C++6 et DirectX 8.1.
    En fait j'essaye... et ca marche pas!

    J'ai crée une simple application win32 avec Visual C++ puis g rajouté :

    et dans la "fonction principale" (après le //TODO ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LPDIRECTSOUND lpDirectSound; 
    HRESULT       hr;
    hr = DirectSoundCreate(NULL, &lpDirectSound, NULL);
    Puis j'ai tout recompilé => Il manque un point virgule dans dsound.h... je ne pense pas que l'erreur provienne de dsound.h mais plutot que c'est une erreur dans mon code...mais où ???
    Ca fait plusieurs jours que je cherche et j'ai toujours pas trouvé! Aidez moi SVP!
    Ce code est en C?
    Et comment on appel le son?
    TT cela m'internese

  10. #10
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Salut.

    Tu UP un sujet de 2002/2003.

    Si tu veux utiliser directsound tu as le SDK directx, qui contient des exemples d'utilisation (voir FAQ).

  11. #11
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par moldavi
    Salut.

    Tu UP un sujet de 2002/2003.

    Si tu veux utiliser directsound tu as le SDK directx, qui contient des exemples d'utilisation (voir FAQ).
    C'est grave que ca soit pas recent?
    SDK directx c'est en C?
    Merci en tt cas je vais essaier de voir ca si je trouve ca , en fait je ne sait pas trop dans quelle faq chercher...

  12. #12
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Citation Envoyé par miron
    C'est grave que ca soit pas recent?
    Ce n'est pas grave, mais je crains que "burkhard" avec ses deux messages postés il y a 3/4 ans ne te réponde pas (à moins qu'il ait changé de pseudo...).

    On peut utiliser directsound avec le langage C. Télécharges le dernier SDK de directX (voir FAQ DIRECTX pour le lien).

    Après regardes il y a des exemples de code.

    Si tu comprends pas bien, ouvres un Post et demandes un peu plus clairement ce que tu n'arrives pas à faire.

  13. #13
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par moldavi
    Ce n'est pas grave, mais je crains que "burkhard" avec ses deux messages postés il y a 3/4 ans ne te réponde pas (à moins qu'il ait changé de pseudo...).

    On peut utiliser directsound avec le langage C. Télécharges le dernier SDK de directX (voir FAQ DIRECTX pour le lien).

    Après regardes il y a des exemples de code.

    Si tu comprends pas bien, ouvres un Post et demandes un peu plus clairement ce que tu n'arrives pas à faire.
    Merci beaucoup je vais voir tt ca...
    a+++

Discussions similaires

  1. DirectSound et le streaming
    Par Shakram dans le forum DirectX
    Réponses: 57
    Dernier message: 09/06/2005, 11h05
  2. FMod et DirectSound
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 13/07/2004, 09h22
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  4. Limitation DirectSound
    Par Sub0 dans le forum DirectX
    Réponses: 1
    Dernier message: 28/02/2003, 11h21
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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