Comment Lire Un Mp3 Dans Un Programme En Utilisant La Reférence QuartzTypeLib??

Résolu
dam5978 Messages postés 18 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 4 janvier 2006 - 21 déc. 2005 à 20:18
dam5978 Messages postés 18 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 4 janvier 2006 - 22 déc. 2005 à 20:26
Bonjour a tous!!
Voilà j'aimerais lire ("entendre") un fichier de type mp3(tant qu'à faire ça prend moins de place)
avec la réference QuartzTypeLib,
mais je ne trouve pas la classe a utiliser pour demarrer mon fichier.

Avec l'espace de nom System.Media;
j'avais utiliser la syntaxe
System.Media.SoundPlayer sp = new SoundPlayer("tonfichier.waw");
sp.PlayLooping(); // Pour jouer le son en boucle

/////Merci Mx/////

Quelqu'un pourrait m'aider????

Merci d'avnce!!


[mailto:D@m D@m]

4 réponses

aogie Messages postés 108 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 27 novembre 2007
21 déc. 2005 à 22:47
Bonsoir,

Il faut créer une variable membre de type FilgraphManagerClass.
Ex: private FilgraphManagerClass _fm = new FilgraphManagerClass()
;

Le choix du fichier à jouer se fait avec la méthode _fm.RenderFile(.......);
La mise en route, avec la méthode "Run" et l'arrêt avec la méthode "Stop".

-- AOGie --
3
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
21 déc. 2005 à 23:43
Voici une classe récupéré sur le site en faisant une petite recherche sur comment lire les mp3 avec QuartzLib.dll:


using System
;


using System
.Runtime
.InteropServices
;


using QuartzTypeLib
;


using System
.Collections
;


using System
.ComponentModel
;


using System
.Threading
;


using System
.Text
;


using System
.Windows
.Forms
;


namespace MyMP3
{


/// <summary>


/// Summary description for csSound.


/// </summary>


public class csSound
{


private bool isInPause
= false ;


private string fichier
;


private Thread MusicThread
;


/********* IMPORTANT MUST DO THIS ************/


/* QuartzTypeLib has to be provided and then you have to add the reference to it


* under the project menu - Add Reference


*


*/


private static QuartzTypeLib
.IMediaControl mp3control
;


private static QuartzTypeLib
.IMediaPosition mp3position
;


private static QuartzTypeLib
.FilgraphManager graphManager
;


public csSound() {


}


public double longueur(){


return mp3position
.Duration
;


}


public void Loadmp3(string args
) {


graphManager
= new QuartzTypeLib
.FilgraphManager();


mp3position
= (QuartzTypeLib
.IMediaPosition
)graphManager
;


mp3control
= (QuartzTypeLib
.IMediaControl
)graphManager
;


mp3control
. RenderFile (args
);


}


private void PlayAMp3(string args
) {


Loadmp3(args
);


mp3control
.Run();


}


public void PlayMp3() {


if(fichier
.Length
>0) {


PlayAMp3(fichier
);


} else MessageBox
.Show("No file");


}


public void PlayMp3InThread(string fileName
) {


fichier
= fileName
;


MusicThread
= new Thread (new ThreadStart(PlayMp3
));


MusicThread
.Start();


PlayMp3();


}


public void StopMp3Thread() {


if (mp3control
! = null
) {


mp3control
.Stop();


}


}


//


public void Pause() {


if(!isInPause
) {


if(mp3control
!= null
) mp3control
.Pause();}


else mp3control
.Run();


isInPause
=!isInPause
;


}


// public void Inc_Volume() {


// mp3control.set_Volume(mp3control.get_Volume()+10);


// }


public void Inc_Volume() {


IBasicAudio m_objBasicAudio
= null
;


if(m_objBasicAudio
.Volume
<10)m_objBasicAudio
.Volume
+ =10;


}


public void Dec_Volume() {


IBasicAudio m_objBasicAudio
= null
;


if(m_objBasicAudio
.Volume
>10) m_objBasicAudio
.Volume
- =10;


}


}


}

et dans ta form principale tu les appelles:

csSound cs = new csSound ();


//PLAY button clicked to play the MP3 selected



protected void btnLireClick(object sender, EventArgs e) {


try {


cs.StopMp3Thread();


//files f =new files();


//string mp3_To_Play=path+f.deleteEndOfLine((string)Playlist[lB_Playlist.SelectedIndex]);


string mp3_To_Play=path+(string)Playlist[lB_Playlist.SelectedIndex];


//MessageBox.Show(mp3_To_Play);


cs.Loadmp3(mp3_To_Play);


cs.PlayMp3InThread(mp3_To_Play.Replace(".wav",".mp3"));


} catch{}


}


//STOP button clicked to STOP the MP3 playing


protected void btnStopClick(object sender, EventArgs e) {


cs.StopMp3Thread();


}


//PAUSE button clicked to 'pause' the MPE playing


void btPause_Click(object sender, System.EventArgs e)


{


cs.Pause();


}


J'espère que ça va t'aider......
3
dam5978 Messages postés 18 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 4 janvier 2006
22 déc. 2005 à 19:43
Hellooooooooooooooooo
Grnd merci a vs deux!!! g pris un peux sur les deux codes, vous assurez!!!! Bonne soiréee à Vs!!

G utilisé cette syntaxe et tout marche nikel :

public
class
mp3


{



public
static QuartzTypeLib.
FilgraphManager _mp3player;


}


static
void Main()


{



FilgraphManager _mp3Player=
new QuartzTypeLib.
FilgraphManager();


_mp3Player.RenderFile(
@"Mon fichier.Mp3");


_mp3Player.Run();
}


[mailto:D@m D@m]
0
dam5978 Messages postés 18 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 4 janvier 2006
22 déc. 2005 à 20:26
g un pti souci , mon fichier se lance bien au moment ou je ve , mais il s'arrete en cours de lecture,je n'arrive pas a trouver prkoi???? problem de fichiers ou faut il faire qqchose pr laisser le fichier tourner?
dans mon prog on appui sur un bouton(winApply)pour que la musik demarre je sais pa si pe aider loll
merci d'avnce!!


[mailto:D@m D@m]
0
Rejoignez-nous