Integrer des sons mp3 directement dans la form, sans etre obligé de transporter les fichiers avec l'executable

Description

Votre application est au point, ca fait des tocs, des hi-hans, des brrs, que vous avez sous forme de fichiers MP3 dans votre dossier. Avec Windows Multimedia control, vous lisez ces fichiers à la demande.
C'est simple, mais pourquoi ne pas integrer directement ces sons dans votre Form ? J'ai pas trouvé grand chose à ce sujet. Je cherchais un genre de controle picture qui au lieu d'integrer l'image, contienne un son jouable à volonté .
L'astuce que j'ai trouvé, c'est d'utiliser justement une picturebox pour contenir le MP3, sous forme d'image bitmap, et de restituer les blocs d'origine en fichier provisoire MP3 sur le disque.
L'executable peut alors travailler n'importe ou sur votre dique dur, une clé USB, pas besoin de faire suivre vos fichiers sons
Il vous faut Le Windows Multimédia Control, une form avec 4 textbox, 3 boutons, un picturebox et un checbox (voir le ZIP)

Source / Exemple :


Dim lig As String * 256 ' on définit des blocs de 256 octets
Private Sub Command1_Click()
nfich = FileLen(Text1) / 256          ' Combien de blocs dans le fichier
Open Text1 For Random As #1 Len = 256 ' Ouverture du fichier MP3
Open Text2 For Random As #2 Len = 256 ' ouverture du fichier bitmap
For i = 1 To Int(nfich)
Get #1, i, lig                        ' lecture des blocs
Put #2, i + 1, lig                    ' copie dans le bitmap, apres l'entete
Next
Close
Picture1.Picture = LoadPicture(Text2) ' chargement du bitmap dans le controle picture
 
End Sub

Private Sub Command2_Click()
SavePicture Picture1.Image, Text3     ' Ecriture du bitmap dans le fichier provisoire
nfich = FileLen(Text3) / 256          ' Combien de blocs à écrire
Open Text3 For Random As #1 Len = 256 ' Ouverture du fichier bitmap
Open Text4 For Random As #2 Len = 256 ' ouverture du fichier mp3
For i = 2 To Int(nfich)
Get #1, i, lig                        ' Lecture des blocs dans le fichier bitmap
Put #2, i - 1, lig                    ' Restitution de l'image du MP3 avec son entete
Next
Close
Kill Text3                            ' Le bitmap n'est plus nécessaire sur le disque
End Sub

Private Sub Command3_Click()
On Error Resume Next
MMC.Command = "Close"                 ' fermeture en cas de double clic
MMC.FileName = Text4                  ' Fichier à lire
MMC.Command = "Open"                  ' Ouverture du player
MMC.Command = "Play"                  ' Lecture du MP3
If Check1.Value = 1 Then
Kill Text4                            ' Si on n'a pas besoin de le laisser sur le disque
End If
End Sub

Private Sub MMC_Done(NotifyCode As Integer)
MMC.Command = "Close"                ' fermeture du player
End Sub

Conclusion :


j'ai utilisé ce petit programme pour un jeu de petits chevaux, que les enfants se repassent d'une clé USB à l'autre. un seul executable pour tout, sans installation particuliere

Codes Sources

A voir également

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.