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 19 990 fois - Téléchargée 2 635 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

PCPT
Messages postés
13281
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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)
mstarsup5
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013

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 !
olixelle
Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
1
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
PCPT
Messages postés
13281
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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)
@+
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
46
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)

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.