Récupérer et lire un fichier .mid dans Ressources

VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 - 21 août 2005 à 07:29
knight82 Messages postés 4 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 13 avril 2009 - 7 avril 2009 à 11:33
Bonjour

Voila j'ai remarqué que le seul type de fichier audio que l'on peut mettre dans Ressources est Wav.
Quand j'ajoute un fichier .mid il va se mettre dans la zone " Fichier " de Ressources et le type que je peux retirer de cette sauvegarde est "byte[]". Or mon but est bel et bien de lire cette musique par exemple via cette instruction :


using Microsoft.DirectX;

using Microsoft.DirectX.DirectSound;

using Microsoft.DirectX.AudioVideoPlayback;

(...)
Audio musique =
new
Audio("Mettre ici le chemin du mid (string)");
musique.Play();

Si qqu'un connait le truc pour transformer correctement le byte[] que je retire de mon fichier .mid mit en Ressources (VS sait quand meme le lire et le reconnait en tant que .mid, c'est pour ca que je pense ( j'espère ) que c'est possible de faire une conversion...)

Sinon ben oui, il fodra bien placer mes fichiers .mid et autres non reconnus dans un dossier en installant le programmme...

Merci bcp

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 août 2005 à 09:45
Salut,

Si la classe Audio n'est en mesure que de prendre un chemin d'accès "réel" et pas un Stream, il te reste aussi la solution d'écrire temporairement ton mid sur le disque depuis les ressources, au lancement de l'appli ou a sa 1ere utilisation, et de le supprimer à la fermeture.
Ainsi tu pourras te servir de la classe Audio.

Pour ce qui de la lecture directement depuis le Stream sur la ressource, ça doit probablement être faisable avec DirectSound, à vérifier.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 1
21 août 2005 à 16:53
Bonjour

Merci pour la réponse, j'ai donc essayer de faire qqch avec la classe Buffer de DirectSound, mais au moment de créer le buffer avec un MemoryStream créé avec la ressources , il me fait cette erreur :
"Value does not fall within the expected range" Je pense que cette classe ne sait lire que des .wav ( corrigez-moi si je me trompe... )

Donc il est vrai que ta deuxième proposition de créer le fichier au début et de le supprimer est très pratique et se rapproche le plus de ce que je voulais faire, evidemment cette technique marche nickel donc au lieu de continuer a m'arracher les cheveux avec DirectSound je vais adopter cette soluce !

Merci bien
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 août 2005 à 17:03
Pour le Buffer je ne sais pas, je connaissais juste son existence, pas son fonctionnement. :p
Par contre suivant tes besoins en audio jette un petit coup d'oeil à FMOD, ça pourrais peut être t'interesser.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 août 2005 à 18:39
Ouaip de mémoire DirectSound c'est que du WAV c'est DirectMusic pour lire le MIDI mais la dernère fois que j'ai régardé MDX y'avait pas de DirectMusic managé.. FMOD c'est le top, une autre possibilité c'est d'utiliser WMP.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 août 2005 à 18:46
WMP n'est peut être pas une idée très viable pour le marché européen

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
knight82 Messages postés 4 Date d'inscription mardi 7 avril 2009 Statut Membre Dernière intervention 13 avril 2009
7 avril 2009 à 11:33
bonjour j'ai un fichier midi corrompue et je cherche 1 moyen pour le réactiver si quelqu'un  connait a 1 solution je e remercie par avance.
0
Rejoignez-nous