begin process at 2010 02 10 07:32:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimédia

 > MP3, WAV ET WMA EN C#

MP3, WAV ET WMA EN C#


 Information sur la source

Note :
6,83 / 10 - par 6 personnes
6,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Multimédia Source .NET ( DotNet ) Classé sous :mp3, wav, wma Niveau :Débutant Date de création :10/05/2004 Date de mise à jour :10/05/2004 01:42:48 Vu :20 790

Auteur : pandoox

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Voici une petite aide pour comprendre comment développer un lecteur audio.
J'ai essayer de pondre un code propre, clair et facil à comprendre permettant
de jouer de la musique ( mp3 ou Wav ), et biensur apporter un minimum de
fonctions utiles... ( Stop, Lecture, Pause, Position, Durée, Volume )

Je pense que le source parle de lui même :)

Attention :
- Pour pouvoir utiliser Quartztypelib, il faut impérativement faire dans le menu :
Projet > Ajouter une référence > .Net > Parcourir > Windows > System32 > quartz.dll

bien, bon courage et n'hésitez pas à faire des remarques ou suggestions...

Source

  • using System;
  • using System.IO;
  • using QuartzTypeLib;
  • using System.Timers;
  • namespace PxMedia
  • {
  • //****************************************************************************************************
  • // Lecteur Pandoox Music : WAV / MP3
  • //****************************************************************************************************
  • public class PxMusic
  • {
  • // Initialisation des variables pour stocker l'adresse du fichier en détail
  • private string MusicFilePathNameExtension = null;
  • private string MusicFilePath = null;
  • private string MusicFileName = null;
  • private string MusicFileExtension = null;
  • private string MusicStatus = null;
  • // Initialisation du timer pour les rafraichissements
  • private static System.Timers.Timer MusicTimer = null;
  • private const int MusicTimerInterval = 100;
  • // Instantiation des objets utiles à la gestion d'un fichier audio
  • private static QuartzTypeLib.IMediaControl MusicCtrl = null;
  • private static QuartzTypeLib.IBasicAudio AudioCtrl = null;
  • private static QuartzTypeLib.IMediaPosition PositionCtrl = null;
  • private static QuartzTypeLib.FilgraphManager GManager = null;
  • // Pour faciliter l'echelle audio du volume
  • private int MusicVolume = 50;
  • //================================================================================
  • public PxMusic( string FileName ) // Constucteur PxMusic
  • {
  • if( FileName != null )
  • {
  • // Variables pour stocker l'adresse du fichier en détail
  • MusicFilePathNameExtension = Path.GetFullPath( FileName );
  • MusicFilePath = Path.GetDirectoryName( FileName );
  • MusicFileName = Path.GetFileNameWithoutExtension( FileName );
  • MusicFileExtension = Path.GetExtension( FileName );
  • // Timer pour les rafraichissements
  • MusicTimer = new System.Timers.Timer( MusicTimerInterval );
  • MusicTimer.Elapsed += new ElapsedEventHandler( MusicTimerEvent );
  • // Instantiation des objets utiles à la gestion d'un fichier audio
  • GManager = new QuartzTypeLib.FilgraphManager();
  • MusicCtrl = ( QuartzTypeLib.IMediaControl )GManager;
  • MusicCtrl.RenderFile( MusicFilePathNameExtension );
  • AudioCtrl = ( QuartzTypeLib.IBasicAudio )MusicCtrl;
  • PositionCtrl = ( QuartzTypeLib.IMediaPosition )MusicCtrl;
  • /* Adapatation des echelles
  • ( MusicVolume : entre 0 et 100; Audio.Volume : entre -10000 et 0 )*/
  • AudioCtrl.Volume = Convert.ToInt32( -0.0004 * Math.Pow( MusicVolume, 4 )
  • +0.1107 * Math.Pow( MusicVolume, 3 )
  • -11.334 * MusicVolume * MusicVolume
  • +525.95 * MusicVolume
  • -10000 );
  • }
  • }
  • //================================================================================
  • ~PxMusic() // Destructeur PxMusic
  • {
  • Stop();
  • }
  • //================================================================================
  • private void MusicTimerEvent( Object sender, ElapsedEventArgs e)
  • {
  • // Vérifie si la musique est toujours en lecture
  • if( PositionCtrl.CurrentPosition >= PositionCtrl.Duration )
  • Stop();
  • }
  • //================================================================================
  • public void Play() // Lecture de la Music
  • {
  • if( MusicFilePathNameExtension != null )
  • {
  • // Si une musique est en pause, le play désactivera la pause uniquement
  • if( MusicStatus != "Paused" )
  • {
  • Stop();
  • MusicCtrl.Run();
  • }
  • MusicCtrl.Run();
  • MusicStatus = "Playing";
  • MusicTimer.Start();
  • }
  • }
  • //================================================================================
  • public void Stop() // Arrete la lecture en cours
  • {
  • if ( MusicCtrl != null )
  • {
  • MusicCtrl.Stop();
  • MusicStatus = "Stopped";
  • PositionCtrl.CurrentPosition = 0;
  • MusicTimer.Stop();
  • }
  • }
  • //================================================================================
  • public void Pause() // Arrete la lecture en cours
  • {
  • if ( MusicCtrl != null )
  • {
  • if( MusicStatus == "Playing" ) // Pause s'il y a une lecture courante
  • {
  • MusicCtrl.Pause();
  • MusicStatus = "Paused";
  • MusicTimer.Stop();
  • }
  • else if( MusicStatus == "Paused" ) // Désactive la pause
  • {
  • MusicCtrl.Run();
  • MusicStatus = "Playing";
  • MusicTimer.Start();
  • }
  • }
  • }
  • //================================================================================
  • public int Volume // Propriété : Nom complet
  • {
  • get
  • {
  • return MusicVolume;
  • }
  • set
  • {
  • if ( AudioCtrl != null && value >= 0 && value <= 100 && MusicVolume != value )
  • {
  • /* Adapatation des echelles
  • ( MusicVolume : entre 0 et 100; Audio.Volume : entre -10000 et 0 )*/
  • MusicVolume = value;
  • AudioCtrl.Volume = Convert.ToInt32( -0.0004 * Math.Pow( MusicVolume, 4 )
  • +0.1107 * Math.Pow( MusicVolume, 3 )
  • -11.334 * MusicVolume * MusicVolume
  • +525.95 * MusicVolume
  • -10000 );
  • }
  • }
  • }
  • //================================================================================
  • public string FilePathNameExtension // Propriété : Nom complet
  • {
  • get
  • {
  • return MusicFilePathNameExtension;
  • }
  • set
  • {
  • if ( MusicFilePathNameExtension != value )
  • {
  • Stop();
  • MusicFilePathNameExtension = value;
  • }
  • }
  • }
  • //================================================================================
  • public string FilePath // Propriété : Chemin seul
  • {
  • get
  • {
  • return MusicFilePath;
  • }
  • }
  • //================================================================================
  • public string FileName // Propriété : Nom du fichier seul
  • {
  • get
  • {
  • return MusicFileName;
  • }
  • }
  • //================================================================================
  • public string FileExtension // Propriété : Extension du fichier
  • {
  • get
  • {
  • return MusicFileExtension;
  • }
  • }
  • //================================================================================
  • public string Status // Propriété : Etat de la lecture courante
  • {
  • get
  • {
  • return MusicStatus;
  • }
  • }
  • //================================================================================
  • public double TimeElapsed // Propriété : Temps écoulé
  • {
  • get
  • {
  • if( PositionCtrl != null )
  • return PositionCtrl.CurrentPosition;
  • else
  • return -1;
  • }
  • set
  • {
  • if( PositionCtrl != null )
  • PositionCtrl.CurrentPosition = value;
  • }
  • }
  • //================================================================================
  • public double Duration // Propriété : Durée total de la musique
  • {
  • get
  • {
  • if( PositionCtrl != null )
  • return PositionCtrl.Duration;
  • else
  • return -1;
  • }
  • }
  • }
  • }
using System;
using System.IO;
using QuartzTypeLib;
using System.Timers;

namespace PxMedia
{
	//****************************************************************************************************
	// Lecteur Pandoox Music : WAV / MP3
	//****************************************************************************************************
	public class PxMusic
	{   
		// Initialisation des variables pour stocker l'adresse du fichier en détail
		private string MusicFilePathNameExtension = null;
		private string MusicFilePath = null;
		private string MusicFileName = null;
		private string MusicFileExtension = null;
		private string MusicStatus = null;

		// Initialisation du timer pour les rafraichissements
		private static System.Timers.Timer MusicTimer = null;
		private const int MusicTimerInterval = 100;

		// Instantiation des objets utiles à la gestion d'un fichier audio
		private static QuartzTypeLib.IMediaControl  MusicCtrl = null;
		private static QuartzTypeLib.IBasicAudio  AudioCtrl = null;
		private static QuartzTypeLib.IMediaPosition PositionCtrl = null;
		private static QuartzTypeLib.FilgraphManager GManager = null;

		// Pour faciliter l'echelle audio du volume 
		private int MusicVolume = 50;

		//================================================================================
		public PxMusic( string FileName ) // Constucteur PxMusic
		{
			if( FileName != null )
			{
				// Variables pour stocker l'adresse du fichier en détail
				MusicFilePathNameExtension = Path.GetFullPath( FileName );
				MusicFilePath = Path.GetDirectoryName( FileName );
				MusicFileName = Path.GetFileNameWithoutExtension( FileName );
				MusicFileExtension = Path.GetExtension( FileName );

				// Timer pour les rafraichissements
				MusicTimer = new System.Timers.Timer( MusicTimerInterval );
				MusicTimer.Elapsed += new ElapsedEventHandler( MusicTimerEvent );

				// Instantiation des objets utiles à la gestion d'un fichier audio
				GManager = new QuartzTypeLib.FilgraphManager();
				MusicCtrl = ( QuartzTypeLib.IMediaControl )GManager;
				MusicCtrl.RenderFile( MusicFilePathNameExtension );
				AudioCtrl = ( QuartzTypeLib.IBasicAudio )MusicCtrl;
				PositionCtrl = ( QuartzTypeLib.IMediaPosition )MusicCtrl;

				/* Adapatation des echelles 
				( MusicVolume : entre 0 et 100; Audio.Volume : entre -10000 et 0 )*/
				AudioCtrl.Volume = Convert.ToInt32(	-0.0004 * Math.Pow( MusicVolume, 4 ) 
													+0.1107 * Math.Pow( MusicVolume, 3 )
													-11.334 * MusicVolume * MusicVolume
													+525.95 * MusicVolume
													-10000 );
			}
		}

		//================================================================================
		~PxMusic() // Destructeur PxMusic
		{
			Stop();
		}

		//================================================================================
		private void MusicTimerEvent( Object sender, ElapsedEventArgs e) 
		{
			// Vérifie si la musique est toujours en lecture
			if( PositionCtrl.CurrentPosition >= PositionCtrl.Duration )
				Stop();
		}

		//================================================================================
		public void Play()	// Lecture de la Music
		{
			if( MusicFilePathNameExtension != null )
			{
				// Si une musique est en pause, le play désactivera la pause uniquement
				if( MusicStatus != "Paused" )
				{
					Stop();
					MusicCtrl.Run();
				}

				MusicCtrl.Run();
				MusicStatus = "Playing";
				MusicTimer.Start();
			}
		}

		//================================================================================
		public void Stop() // Arrete la lecture en cours
		{
			if ( MusicCtrl != null )
			{
				MusicCtrl.Stop();
				MusicStatus = "Stopped";
				PositionCtrl.CurrentPosition = 0;
				MusicTimer.Stop();
			}
		}

		//================================================================================
		public void Pause() // Arrete la lecture en cours
		{
			if ( MusicCtrl != null )
			{
				if( MusicStatus == "Playing" ) // Pause s'il y a une lecture courante
				{
					MusicCtrl.Pause();
					MusicStatus = "Paused";
					MusicTimer.Stop();
				}
				else if( MusicStatus == "Paused" ) // Désactive la pause
				{
					MusicCtrl.Run();
					MusicStatus = "Playing";
					MusicTimer.Start();
				}
			}
		}

		//================================================================================
		public int Volume // Propriété : Nom complet
		{
			get
			{
				return MusicVolume;
			}
			set
			{
				if ( AudioCtrl != null && value >= 0 && value <= 100 && MusicVolume != value )
				{
					/* Adapatation des echelles 
					( MusicVolume : entre 0 et 100; Audio.Volume : entre -10000 et 0 )*/
					MusicVolume = value;
					AudioCtrl.Volume = Convert.ToInt32(	-0.0004 * Math.Pow( MusicVolume, 4 ) 
														+0.1107 * Math.Pow( MusicVolume, 3 )
														-11.334 * MusicVolume * MusicVolume
														+525.95 * MusicVolume
														-10000 );
				}
			}
		}

		//================================================================================
		public string FilePathNameExtension // Propriété : Nom complet
		{
			get
			{
				return MusicFilePathNameExtension;
			}
			set
			{
				if ( MusicFilePathNameExtension != value )
				{
					Stop();
					MusicFilePathNameExtension = value;
				}
			}
		}

		//================================================================================
		public string FilePath // Propriété : Chemin seul
		{
			get
			{
				return MusicFilePath;
			}
		}

		//================================================================================
		public string FileName // Propriété : Nom du fichier seul
		{
			get
			{
				return MusicFileName;
			}
		}

		//================================================================================
		public string FileExtension // Propriété : Extension du fichier
		{
			get
			{
				return MusicFileExtension;
			}
		}

		//================================================================================
		public string Status // Propriété : Etat de la lecture courante
		{
			get
			{
				return MusicStatus;
			}
		}

		//================================================================================
		public double TimeElapsed // Propriété : Temps écoulé
		{
			get
			{
				if( PositionCtrl != null )
					return PositionCtrl.CurrentPosition;
				else
					return -1;
			}
			set
			{
				if( PositionCtrl != null )
					PositionCtrl.CurrentPosition = value;
			}
		}

		//================================================================================
		public double Duration // Propriété : Durée total de la musique
		{
			get
			{
				if( PositionCtrl != null )
					return PositionCtrl.Duration;
				else
					return -1;
			}
		}
	}
}



 Sources de la même categorie

Source avec Zip REDIMENSION D'IMAGE EN C# par VinceMonkeyz
Source avec Zip Source avec une capture Source .NET (Dotnet) SOUND EDITOR - UN PETIT LOGICIEL DE DSP AUDIO par MaxSoldier
Source avec Zip Source avec une capture Source .NET (Dotnet) "SURFACE LIKE" EN SILVERLIGHT par Malkuth
Source avec Zip Source avec une capture Source .NET (Dotnet) LAMINE PLAYER par ouadjaout
Source avec Zip Source avec une capture Source .NET (Dotnet) PROJET EDUCATIF : CD INTERACTIF DU PROJET PUISSANCE QUATRE. par mechtaly

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) SOUND EDITOR - UN PETIT LOGICIEL DE DSP AUDIO par MaxSoldier
Source avec Zip Source avec une capture Source .NET (Dotnet) LAMINE PLAYER par ouadjaout
Source avec Zip Source avec une capture Source .NET (Dotnet) SHARPRADIO par leproc
Source avec Zip Source .NET (Dotnet) UTILISATION DE L'ÉLÉMENT AUDIO DE DIRECTX 9 par LuckyLuck
Source avec Zip Source .NET (Dotnet) JOUER DE LA MUSIQUE EN ASYNHRONE (WAV ET MP3) par bob94700

Commentaires et avis

Commentaire de bucherb le 10/05/2004 11:23:29

Mouais, j'préfère directx pour les mêmes fonctions, moins de code ;-)

Commentaire de Pirate32 le 16/06/2004 17:59:14

Marche pas trouve31 erreur...

Commentaire de lsweb le 17/08/2004 00:00:10

Bonjour,

J'ai une erreur: ne trouve pas wndmaintuto.1()

Merci de m'aider.

Lsweb

Commentaire de danyo le 18/10/2004 11:38:11

Salut,

Les sons sont joues en mode asynchrone.
Dans mon programme je fais jouer des sons en boucle et on les entend en meme temps.
Sais-tu controler le mode synchrone?

Merci

Commentaire de alshinhap le 09/03/2005 13:53:48

good

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Conversion wav to raw [ par lezabour55 ] Bonjour a tous, Je debute un peu en C# apres avoir appris a la fac le c/c++.... Je dois faire un projet dans lequel je convertie des mp3 en raw. Pour openFileDialog multi "type" [ par cameleon044 ] Bonjour,N'ayant pas trouvé de réponse sur les forum, je me permet de poser cette question.Comment fait on dans un OpenFileDialog en C# pour avoir comm Mettre en pause un MP3 ( AudioVideoPlayback ) [ par sliverman ] Bonjour à tous, je suis en train de faire une petite application qui permet la lecture des MP3 et j'ai un problème pour mettre en pause la lecture...q >>>>>>> je recherche quelqu'un qui peu m'aider à placer un Lecteur mp3 sur mon site >>>>> [ par delotrerive ] Bonjour !Je ne suis pas Développeur/ SimplementPeintre / Infographiste/musicienEn  ce moment je travaille sur mon site www Tagger mp3 via internet [ par Leucistic ] Bonjour, Je voudrais développer une appli qui permettrais de tagger ses mp3 rapidement en allant chercher les infos des tracks d'un album sur internet lecteur mp3 en C# [ par moi411 ] Bonjour à tous,Voilà, je voudrais créer une application qui me lise des fichier mp3. Mon problème comme vous l'avez deviné, est de lire le fichier et Durée incorrecte. [ par Electrok0rE ] Salutations,Pour faire simple :- Je manipule des fichiers mp3 avec la bibliothèque Microsoft.DirectX.AudioVideoPlayBack- Pour la plupart des fichiers [ C# -> BAR ] recuperation du lecteur mp3 [ par ismail02 ] bonjour a tous voila mon probleme jai voulu metre a jour mon lecteur mp3 sigmatel 512mo mai il me demonde de regenerer la base de donnes interne ,afin mp3 [ par verbeyst ] bonjour, Je suis débutant, Je développe à titre privé une appli web qui doit avoir entre autres comme fonctionnalités, la lecture d'un fichier mp3. lire un mp3 [ par verbeyst ] Bonjour, Pourriez-vous me dire comment faire pour lire un fichier mp3 avec c sharp. Please donnez-moi ne serait-ce q'une piste, je suis totalement pe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales