Jouer un son - wav / mp3 / mid / system / note - uniquement par api [ctl] et [module de classe]

Soyez le premier à donner votre avis sur cette source.

Vue 20 147 fois - Téléchargée 2 706 fois


Description

tout est dit...
avant :
jouer un wav, oui mais toujours un seul à la fois avec l'API PlaySound ....
jouer un mp3, oui mais encore un composant à ajouter voire à enregistrer ....
une note de musique en midi? un son système?

maintenant, tout est plus facile :p
ici 2 projets distincts faisant la même chose.
  • une démo avec le usercontrol, pour jouer des notes midi, une musique, des sons système.
  • une démo avec le module de classe pour jouer toutes les musiques contenues dans un dossier avec indication du titre et de l'avancement de lecture (%).


comme d'hab, j'attend vos retours ;)

Source / Exemple :


AfSound.FileToPlay = App.Path & "\sounds\welcome.mp3"
AfSound.PlayMCI
'
AfSound.PlaySystemSound [42 - System Asterisque]

Conclusion :


.ctl et .cls sont presque les mêmes. si vous regardez le code de près, préférez le .cls (pas de About)

le but est de lire très facilement un son, pas de faire un player mp3, même si presque tout y est pour ;)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
pas mis à jour le zip mais vous pouvez ajouter ceci pour lire un wav en ressource :

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

Public Sub PlayResourceWav(ByVal sSection As String, ByVal vID As Variant)
On Local Error Resume Next
Dim abArr() As Byte
abArr = LoadResData(vID, sSection)
Call PlayMem(VarPtr(abArr(0)), 0&, SND_NOWAIT Or SND_MEMORY Or SND_ASYNC Or SND_NODEFAULT)
Erase abArr
End Sub

(cf le snippet de Jack)
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Très bon programme, je crois que je vais passer de longues heures à étudier les commandes que tu as utilisées.
C'est très instructif comme source, et comme l'a dit tigroo, à part en faire un lecteur multimedia, je ne vois pas vraiment quoi rajouter, ou redire :)
Peut être un label pour afficher le nom de l'artiste et de l'album quand c'est présent sur le fichier, pour voir le code, mais bon c'est pas vraiment le but de ta source comme tu l'as dit ;-)
Sur ce, bonne continuation, et encore bravo !
Messages postés
506
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
salut,
ca a l'air detre du bon boulot, j'avais fait la mm chose en .net mais bon, trop de galere, je crois que mci n'est pas tres stable.... du coup j'ai opté pour la librairie bass qui est vraiment excellente
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
salut JRivet,
bonne utilisation de ta part, la classe n'ayant pas à gérer elle-même une playlist, j'avais laissé ce bug puisqu'il n'empêchait pas la fermeture de l'appli et que ce code ne concerne pas directement la source.

mais c'est vrai que çà peut être gênant.. donc merci ;)
c'est modifié avec un compteur (3 fichiers invalides consécutifs max)
@+
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,

Petit souci.
(sauf mauvaise utilisation de ma part pSampleCLS)
Si tu fais Jouer le Contenu d'un dossier et que tout le contenu possède des extension non supportées (ex: wma), et bien tu boucles... (sauf erreur de ma part)
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.