J'ai écrit un programme qui génère du son en continu avec les fonctions de
mmsystem.h .
J'utilise la fonction waveOutWrite pour écrire sur le périphérique audio. Le
problème
c'est que entre deux appels à cette dernière fonction, il y a un petit
silence.
Pour temporiser entre deux appels j'utilise le code du style:
do
{
waveOutWrite(wavein,&header,sizeof(header));
while(!done);
done = 0;
}while(1)
où done est une variable globale modifié par le fonction callback transmise
à waveOutOpen
qui ressemble à ça:
void audioProc( HWAVE hWave, UINT uMsg...)
{
if(uMsg==WOM_DONE) done=1;
}
Je ne vois pas comment faire pour avoir un son bien continu, sans coupure.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian
Peut être une solution en http://support.microsoft.com/default.aspx?scid=kb;en-us;186493 il y a un petit prog en VB avec une gestion de buffers (attention de le compiler "Because the sample hooks into a Windows process, you should compile this sample and run the executable file rather than running the sample from the Visual Basic design environment.")
Peut être une solution en
http://support.microsoft.com/default.aspx?scid=kb;en-us;186493
il y a un petit prog en VB avec une gestion de buffers (attention de le
compiler "Because the sample hooks into a Windows process, you should
compile this sample and run the executable file rather than running the
sample from the Visual Basic design environment.")
Peut être une solution en http://support.microsoft.com/default.aspx?scid=kb;en-us;186493 il y a un petit prog en VB avec une gestion de buffers (attention de le compiler "Because the sample hooks into a Windows process, you should compile this sample and run the executable file rather than running the sample from the Visual Basic design environment.")
Matt...
jean dupont a écrit :
Bonjour,
J'ai écrit un programme qui génère du son en continu avec les fonctions de mmsystem.h . J'utilise la fonction waveOutWrite pour écrire sur le périphérique audio. Le problème c'est que entre deux appels à cette dernière fonction, il y a un petit silence. Pour temporiser entre deux appels j'utilise le code du style:
do { waveOutWrite(wavein,&header,sizeof(header)); while(!done); done = 0; }while(1)
où done est une variable globale modifié par le fonction callback transmise à waveOutOpen qui ressemble à ça: void audioProc( HWAVE hWave, UINT uMsg...) { if(uMsg==WOM_DONE) done=1; }
Je ne vois pas comment faire pour avoir un son bien continu, sans coupure.
Bonsoir,
Je n'ai jamais utilisé les waveOut mais seulement les waveIn. Pourquoi ne fais tu pas ton waveoutwrite dans la fonction AudioProc ??? Avec les waveIn, je remet mon buffer (waveInAddBuffer) dans la fonction qui traite le message WIM_DONE et pas de coupure.
Matt...
jean dupont a écrit :
Bonjour,
J'ai écrit un programme qui génère du son en continu avec les fonctions de
mmsystem.h .
J'utilise la fonction waveOutWrite pour écrire sur le périphérique audio. Le
problème
c'est que entre deux appels à cette dernière fonction, il y a un petit
silence.
Pour temporiser entre deux appels j'utilise le code du style:
do
{
waveOutWrite(wavein,&header,sizeof(header));
while(!done);
done = 0;
}while(1)
où done est une variable globale modifié par le fonction callback transmise
à waveOutOpen
qui ressemble à ça:
void audioProc( HWAVE hWave, UINT uMsg...)
{
if(uMsg==WOM_DONE) done=1;
}
Je ne vois pas comment faire pour avoir un son bien continu, sans coupure.
Bonsoir,
Je n'ai jamais utilisé les waveOut mais seulement les waveIn.
Pourquoi ne fais tu pas ton waveoutwrite dans la fonction AudioProc ???
Avec les waveIn, je remet mon buffer (waveInAddBuffer) dans la fonction
qui traite le message WIM_DONE et pas de coupure.
J'ai écrit un programme qui génère du son en continu avec les fonctions de mmsystem.h . J'utilise la fonction waveOutWrite pour écrire sur le périphérique audio. Le problème c'est que entre deux appels à cette dernière fonction, il y a un petit silence. Pour temporiser entre deux appels j'utilise le code du style:
do { waveOutWrite(wavein,&header,sizeof(header)); while(!done); done = 0; }while(1)
où done est une variable globale modifié par le fonction callback transmise à waveOutOpen qui ressemble à ça: void audioProc( HWAVE hWave, UINT uMsg...) { if(uMsg==WOM_DONE) done=1; }
Je ne vois pas comment faire pour avoir un son bien continu, sans coupure.
Bonsoir,
Je n'ai jamais utilisé les waveOut mais seulement les waveIn. Pourquoi ne fais tu pas ton waveoutwrite dans la fonction AudioProc ??? Avec les waveIn, je remet mon buffer (waveInAddBuffer) dans la fonction qui traite le message WIM_DONE et pas de coupure.