Réponse acceptée !
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......