Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Prendre la main pendant un Son en VB

8 réponses
Avatar
News79
salut à tous
j'utilise cette APi pour jouer un son :
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

mais elle me prend trop de ressource système apparemment...
je veux dire que pendant que mon son se joue, mon appli n'a pas la main
jusqu'à temps que le son soit fini !
Auriez-vous une solution ou une appli meilleure ??

Merciiiii

--
Laurent

8 réponses

Avatar
LE TROLL
Salut, pour un son y a celle là aussi API beep, mais
c'est pareil, la fonction est synchrone (elle s'exécute en
monotâche)... Peut être, sans doute, avec un objet qui joue
de la musique, et un fichier...
---------

"News79" a écrit
dans le message de news: cvkl1e$u97$
salut à tous
j'utilise cette APi pour jouer un son :
Declare Function PlaySound Lib "winmm.dll" Alias
"PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags
As Long) As Long

mais elle me prend trop de ressource système
apparemment...
je veux dire que pendant que mon son se joue, mon appli
n'a pas la main
jusqu'à temps que le son soit fini !
Auriez-vous une solution ou une appli meilleure ??

Merciiiii

--
Laurent




Avatar
dark poulpo
utilise fmod

--
-----
http://dark.freezee.org/
- Dark Update v2.0
- Dark Emule v0.44b r4
- Dark 3D-X 0.7beta
- Dark Shell 1.12
Avatar
Guy DETIENNE
Salut ;O)

Utilise la constante SND_ASYNC dans l'utilisation de l'API :
Exemple du site AllApi.net:

Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry

Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier

Private Const SND_ASYNC = &H1 ' play asynchronously

Private Const SND_FILENAME = &H20000 ' name is a file name

Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound

Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file

Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found

Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound

Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy

Private Const SND_PURGE = &H40 ' purge non-static events for task

Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom

Private Const SND_SYNC = &H0 ' play synchronously (default)

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Private Sub Form_Load()

'KPD-Team 2000

'URL: http://www.allapi.net/

'E-Mail:

PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC

End Sub

Guy


"News79" a écrit dans le message de
news:cvkl1e$u97$
salut à tous
j'utilise cette APi pour jouer un son :
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

mais elle me prend trop de ressource système apparemment...
je veux dire que pendant que mon son se joue, mon appli n'a pas la main
jusqu'à temps que le son soit fini !
Auriez-vous une solution ou une appli meilleure ??

Merciiiii

--
Laurent




Avatar
Jean-Marc
"News79" a écrit dans le message de
news:cvkl1e$u97$
salut à tous
j'utilise cette APi pour jouer un son :
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

mais elle me prend trop de ressource système apparemment...
je veux dire que pendant que mon son se joue, mon appli n'a pas la main
jusqu'à temps que le son soit fini !
Auriez-vous une solution ou une appli meilleure ??



Hello,
tu peux utiliser la fonction: sndPlaySound

Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Si tu utilises comme second paramètre SND_ASYNC
Const SND_ASYNC = &H1 ' play asynchronously

alors la fonction rend la main dès qu'elle commence à jouer le son.


--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
News79
Super merci ! le système reprend la main !!

--
Laurent

"Jean-Marc" a écrit dans le message de
news:421e29ae$0$4972$
"News79" a écrit dans le message


de
news:cvkl1e$u97$
> salut à tous
> j'utilise cette APi pour jouer un son :
> Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
> lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As


Long
>
> mais elle me prend trop de ressource système apparemment...
> je veux dire que pendant que mon son se joue, mon appli n'a pas la main
> jusqu'à temps que le son soit fini !
> Auriez-vous une solution ou une appli meilleure ??

Hello,
tu peux utiliser la fonction: sndPlaySound

Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Si tu utilises comme second paramètre SND_ASYNC
Const SND_ASYNC = &H1 ' play asynchronously

alors la fonction rend la main dès qu'elle commence à jouer le son.


--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."




Avatar
Illinger Philippe
"News79" wrote in message news:cvmpiv$von$
Super merci ! le système reprend la main !!



...c'est plutot la fonction systeme qui rend la main a l'appli appelante...

Une autre methode, eu ete de faire un thread dedié.


--
Laurent

"Jean-Marc" a écrit dans le message de
news:421e29ae$0$4972$
> "News79" a écrit dans le message
de
> news:cvkl1e$u97$
> > salut à tous
> > j'utilise cette APi pour jouer un son :
> > Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
> > lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
> >
> > mais elle me prend trop de ressource système apparemment...
> > je veux dire que pendant que mon son se joue, mon appli n'a pas la main
> > jusqu'à temps que le son soit fini !
> > Auriez-vous une solution ou une appli meilleure ??
>
> Hello,
> tu peux utiliser la fonction: sndPlaySound
>
> Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
> (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
>
> Si tu utilises comme second paramètre SND_ASYNC
> Const SND_ASYNC = &H1 ' play asynchronously
>
> alors la fonction rend la main dès qu'elle commence à jouer le son.
>
>
> --
> Jean-marc
> "There are only 10 kind of people
> those who understand binary and those who don't."
>
>




Avatar
jean-marc
"Illinger Philippe" wrote in
message news:#

"News79" wrote in message
news:cvmpiv$von$
Super merci ! le système reprend la main !!



...c'est plutot la fonction systeme qui rend la main a l'appli




appelante...

Une autre methode, eu ete de faire un thread dedié.





Oui, ou alors d'envoyer le fichier wav à jouer via MQ Series sur un
mainframe
IBM, puis de le faire stocker par le mainframe dans une base de donnée DB2.
Ensuite, un programme en ADA tournat sur un AIX RS600 pourrait l'extraire
de la base de données, l'envoyer via TCP/IP sur un client SUN Solaris qui
l'enverrai (POP3) à une machine sous Windows qui aurait un programme
écrit en VB (client SMTP) qui lirait automatiquement ce mail, décoderais le
fichier wav (MIME) pour finalement le jouer sur cette machine Windows dédié.

Moi qui n'avait rien de prévu ce WE, je pense implémenter tout ça :-))

--
Jean-Marc
Prêt à tout pour éviter de lancer un thread.
Avatar
Illinger Philippe
"jean-marc" wrote in message news:421f2e15$0$6598$
"Illinger Philippe" wrote in
message news:#

"News79" wrote in message
news:cvmpiv$von$
> Super merci ! le système reprend la main !!

>>...c'est plutot la fonction systeme qui rend la main a l'appli
appelante...

>>Une autre methode, eu ete de faire un thread dedié.

Oui, ou alors d'envoyer le fichier wav à jouer via MQ Series sur un
mainframe
IBM, puis de le faire stocker par le mainframe dans une base de donnée DB2.
Ensuite, un programme en ADA tournat sur un AIX RS600 pourrait l'extraire
de la base de données, l'envoyer via TCP/IP sur un client SUN Solaris qui
l'enverrai (POP3) à une machine sous Windows qui aurait un programme
écrit en VB (client SMTP) qui lirait automatiquement ce mail, décoderais le
fichier wav (MIME) pour finalement le jouer sur cette machine Windows dédié.

Moi qui n'avait rien de prévu ce WE, je pense implémenter tout ça :-))




:-)))


--
Jean-Marc
Prêt à tout pour éviter de lancer un thread.