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

Je cherche un composant

3 réponses
Avatar
pierre.rivet
Bonsoir à tous,

Je cherche un composant dans le même style que ActiveMovie, mais pour le
son.
L'idéal searit de mettre sur une page en VB6 quelque chose comme le Windows
Media Player...

En fait, ce que je voudrais c'est lire un message sonore, et arrêter quand
j'en ai envie, comme je peux le faire avec un ActiveMovie qui lit des
fichiers vidéo.

Je réussis bien à lire un fichier son (en *.wav) avec une API, mais le
problème c'est que je suis obligé d'attendre que la lecture soit terminée
pour passer à autre chose.

Ai-je été assez clair ?

Merci à l'avance,

Pierre

3 réponses

Avatar
François Picalausa
On Aug 21, 6:47 pm, "pierre.rivet" wrote:
En fait, ce que je voudrais c'est lire un message sonore, et arrêter qu and
j'en ai envie, comme je peux le faire avec un ActiveMovie qui lit des
fichiers vidéo.



Hello,

Il y a des dizaines de possibilités pour faire ça.
1/ Le contrôle Windows Media Player (Composants > Ajouter > "Windows
Media Player" (%systemroot%system32wmp.dll) )
L'avantage de ce type de solution est que c'est simple à mettre en
oeuvre et offre une certaine aisance s'il faut ajouter des
fonctionnalités (gestion de playlist?) par la suite. Il est possible
d'afficher uniquement les contrôles play pause stop si nécessaire
(uimode = mini), ou de laisser le contrôle de la lecture à
l'application incluant le contrôle.
Le désavantage est que c'est un canon pour tuer une mouche, si le but
est uniquement de lire du wav.

Exemple:
'Un contrôle Windows Media Player (WindowsMediaPlayer1) est présent
sur la feuille
'Dans les propriétés avancées décocher autostart
'Deux boutons (cmdPlayPause, cmdStop) permettent de contrôler la
lecture
Private Sub cmdPlayPause_Click()
If (WindowsMediaPlayer1.playState = wmppsPlaying) Then
WindowsMediaPlayer1.Controls.pause
Else
WindowsMediaPlayer1.Controls.play
End If
End Sub

Private Sub cmdStop_Click()
WindowsMediaPlayer1.Controls.stop
End Sub

Private Sub Form_Load()
WindowsMediaPlayer1.URL = "C:WINDOWSMediaWindows XP
Startup.wav"
End Sub

Différentes variantes sont disponibles: contrôle Real Player, contrôle
Media Player 6 (attention, pas sous Vista), contrôle Quicktime, ...

2/ l'API PlaySound
L'avantage est que c'est ce qu'il y a de plus basique pour jouer un
fichier wav. C'est aussi le désavantage: on peut éventuellement
arrêter le son, mais pas le mettre en pause, ou d'autres choses plus
fancy. Cette API est fournie en synchrone et asynchrone.

Exemple (asynchrone):
Private Const SND_FILENAME = &H20000
Private Const SND_ASYNC = &H1

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 sndPlay(FilePath As String)
PlaySound FilePath, 0&, SND_ASYNC Or SND_FILENAME
End Sub

Private Sub sndStop()
PlaySound vbNullString, 0, SND_ASYNC
End Sub

3/ MCI
MCI permet un bon niveau d'interaction avec les fichiers audio, sans
avoir forcément toute la complexité d'une implémentation complète de
lecteur multimedia au niveau utilisateur, mais proposant tout de même
des fonctionnalités très proches du système, comme le choix de la
carte son à employer. Pause, stop, play ne sont pas un problème pour
MCI.
MCI vient soit en tant que contrôle ActiveX (Composants > Ajouter >
"Microsoft Multimedia Control" (%systemroot%system32MCI32.dll)), ou
en tant qu'API.

Pour des exemples, voir la documentation de VB (ActiveX) ou le
platform SDK (API)

4/ Directshow
Ou comment utiliser la couche multimedia de Windows Media Player sans
Windows Media Player (vision TRES simplifiée). Ceci permet de jouer un
son, de le mettre en pause, de l'arrêter, tout en spécifiant comment
le fichier sera décodé (si par exemple il y a du mp3 dans le .wav et
que deux décodeurs mp3 sont disponibles, il est possible de choisir
lequel sera utilisé), d'avoir des fonctionnalitées très proches du
système, et d'ajouter des effets sur le son (écho! écho... écho). La
documentation de Directshow est très bien écrite et des exemples VB6
sont (étaient?) disponibles dans le SDK.

5/ Il est aussi possible d'utiliser DirectMusic, le .Net Framework, et
une série d'autres technologies amusantes... mais l'exagération n'est
jamais bonne :-)

François
Avatar
pierre.rivet
"François Picalausa" a écrit dans le message de news:

On Aug 21, 6:47 pm, "pierre.rivet" wrote:
En fait, ce que je voudrais c'est lire un message sonore, et arrêter quand
j'en ai envie, comme je peux le faire avec un ActiveMovie qui lit des
fichiers vidéo.



Hello,

Il y a des dizaines de possibilités pour faire ça.
1/ Le contrôle Windows Media Player (Composants > Ajouter > "Windows
Media Player" (%systemroot%system32wmp.dll) )
L'avantage de ce type de solution est que c'est simple à mettre en
oeuvre et offre une certaine aisance s'il faut ajouter des
fonctionnalités (gestion de playlist?) par la suite. Il est possible
d'afficher uniquement les contrôles play pause stop si nécessaire
(uimode = mini), ou de laisser le contrôle de la lecture à
l'application incluant le contrôle.
Le désavantage est que c'est un canon pour tuer une mouche, si le but
est uniquement de lire du wav.

Exemple:
'Un contrôle Windows Media Player (WindowsMediaPlayer1) est présent
sur la feuille
'Dans les propriétés avancées décocher autostart
'Deux boutons (cmdPlayPause, cmdStop) permettent de contrôler la
lecture
Private Sub cmdPlayPause_Click()
If (WindowsMediaPlayer1.playState = wmppsPlaying) Then
WindowsMediaPlayer1.Controls.pause
Else
WindowsMediaPlayer1.Controls.play
End If
End Sub

Private Sub cmdStop_Click()
WindowsMediaPlayer1.Controls.stop
End Sub

Private Sub Form_Load()
WindowsMediaPlayer1.URL = "C:WINDOWSMediaWindows XP
Startup.wav"
End Sub

Différentes variantes sont disponibles: contrôle Real Player, contrôle
Media Player 6 (attention, pas sous Vista), contrôle Quicktime, ...

2/ l'API PlaySound
L'avantage est que c'est ce qu'il y a de plus basique pour jouer un
fichier wav. C'est aussi le désavantage: on peut éventuellement
arrêter le son, mais pas le mettre en pause, ou d'autres choses plus
fancy. Cette API est fournie en synchrone et asynchrone.

Exemple (asynchrone):
Private Const SND_FILENAME = &H20000
Private Const SND_ASYNC = &H1

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 sndPlay(FilePath As String)
PlaySound FilePath, 0&, SND_ASYNC Or SND_FILENAME
End Sub

Private Sub sndStop()
PlaySound vbNullString, 0, SND_ASYNC
End Sub

3/ MCI
MCI permet un bon niveau d'interaction avec les fichiers audio, sans
avoir forcément toute la complexité d'une implémentation complète de
lecteur multimedia au niveau utilisateur, mais proposant tout de même
des fonctionnalités très proches du système, comme le choix de la
carte son à employer. Pause, stop, play ne sont pas un problème pour
MCI.
MCI vient soit en tant que contrôle ActiveX (Composants > Ajouter >
"Microsoft Multimedia Control" (%systemroot%system32MCI32.dll)), ou
en tant qu'API.

Pour des exemples, voir la documentation de VB (ActiveX) ou le
platform SDK (API)

4/ Directshow
Ou comment utiliser la couche multimedia de Windows Media Player sans
Windows Media Player (vision TRES simplifiée). Ceci permet de jouer un
son, de le mettre en pause, de l'arrêter, tout en spécifiant comment
le fichier sera décodé (si par exemple il y a du mp3 dans le .wav et
que deux décodeurs mp3 sont disponibles, il est possible de choisir
lequel sera utilisé), d'avoir des fonctionnalitées très proches du
système, et d'ajouter des effets sur le son (écho! écho... écho). La
documentation de Directshow est très bien écrite et des exemples VB6
sont (étaient?) disponibles dans le SDK.

5/ Il est aussi possible d'utiliser DirectMusic, le .Net Framework, et
une série d'autres technologies amusantes... mais l'exagération n'est
jamais bonne :-)

François
Avatar
pierre.rivet
Merci François,

encore une fois une réponse rapide, et complète. !!!

Je n'avais pas vu le composant Windows Media Player......je cherchais un nom
de composant commençant par Microsoft.

Vu le bout de code que tu as mis, je crois que ça répond à mon problème.

Merci encore, et bonne soirée,

Pierre
"François Picalausa" a écrit dans le message de news:

On Aug 21, 6:47 pm, "pierre.rivet" wrote:
En fait, ce que je voudrais c'est lire un message sonore, et arrêter quand
j'en ai envie, comme je peux le faire avec un ActiveMovie qui lit des
fichiers vidéo.



Hello,

Il y a des dizaines de possibilités pour faire ça.
1/ Le contrôle Windows Media Player (Composants > Ajouter > "Windows
Media Player" (%systemroot%system32wmp.dll) )
L'avantage de ce type de solution est que c'est simple à mettre en
oeuvre et offre une certaine aisance s'il faut ajouter des
fonctionnalités (gestion de playlist?) par la suite. Il est possible
d'afficher uniquement les contrôles play pause stop si nécessaire
(uimode = mini), ou de laisser le contrôle de la lecture à
l'application incluant le contrôle.
Le désavantage est que c'est un canon pour tuer une mouche, si le but
est uniquement de lire du wav.

Exemple:
'Un contrôle Windows Media Player (WindowsMediaPlayer1) est présent
sur la feuille
'Dans les propriétés avancées décocher autostart
'Deux boutons (cmdPlayPause, cmdStop) permettent de contrôler la
lecture
Private Sub cmdPlayPause_Click()
If (WindowsMediaPlayer1.playState = wmppsPlaying) Then
WindowsMediaPlayer1.Controls.pause
Else
WindowsMediaPlayer1.Controls.play
End If
End Sub

Private Sub cmdStop_Click()
WindowsMediaPlayer1.Controls.stop
End Sub

Private Sub Form_Load()
WindowsMediaPlayer1.URL = "C:WINDOWSMediaWindows XP
Startup.wav"
End Sub

Différentes variantes sont disponibles: contrôle Real Player, contrôle
Media Player 6 (attention, pas sous Vista), contrôle Quicktime, ...

2/ l'API PlaySound
L'avantage est que c'est ce qu'il y a de plus basique pour jouer un
fichier wav. C'est aussi le désavantage: on peut éventuellement
arrêter le son, mais pas le mettre en pause, ou d'autres choses plus
fancy. Cette API est fournie en synchrone et asynchrone.

Exemple (asynchrone):
Private Const SND_FILENAME = &H20000
Private Const SND_ASYNC = &H1

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 sndPlay(FilePath As String)
PlaySound FilePath, 0&, SND_ASYNC Or SND_FILENAME
End Sub

Private Sub sndStop()
PlaySound vbNullString, 0, SND_ASYNC
End Sub

3/ MCI
MCI permet un bon niveau d'interaction avec les fichiers audio, sans
avoir forcément toute la complexité d'une implémentation complète de
lecteur multimedia au niveau utilisateur, mais proposant tout de même
des fonctionnalités très proches du système, comme le choix de la
carte son à employer. Pause, stop, play ne sont pas un problème pour
MCI.
MCI vient soit en tant que contrôle ActiveX (Composants > Ajouter >
"Microsoft Multimedia Control" (%systemroot%system32MCI32.dll)), ou
en tant qu'API.

Pour des exemples, voir la documentation de VB (ActiveX) ou le
platform SDK (API)

4/ Directshow
Ou comment utiliser la couche multimedia de Windows Media Player sans
Windows Media Player (vision TRES simplifiée). Ceci permet de jouer un
son, de le mettre en pause, de l'arrêter, tout en spécifiant comment
le fichier sera décodé (si par exemple il y a du mp3 dans le .wav et
que deux décodeurs mp3 sont disponibles, il est possible de choisir
lequel sera utilisé), d'avoir des fonctionnalitées très proches du
système, et d'ajouter des effets sur le son (écho! écho... écho). La
documentation de Directshow est très bien écrite et des exemples VB6
sont (étaient?) disponibles dans le SDK.

5/ Il est aussi possible d'utiliser DirectMusic, le .Net Framework, et
une série d'autres technologies amusantes... mais l'exagération n'est
jamais bonne :-)

François