Lire les fichiers .wav

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 864 fois - Téléchargée 16 fois

Contenu du snippet

Cette classe permet de lire les fichiers .wav, de les mettre en pause, et de les reprendre en cours de lecture sans bloquer l'OS.

Source / Exemple :


 package util;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;
import controleur.Parametres;

public class Wav {
	
	/** url : adresse du fichier wav */
	private String url;
	
	/** son : le son correspondant, nécéssairement final car Audio player est un Thread*/
	private final AudioStream son;
	
	/**
	 * Constructeur
	 * @param url : adresse du fichier Wav
	 * @throws IOException 
	 * @throws FileNotFoundException 
	 */
	public Wav(String url) throws FileNotFoundException, IOException{
		this.setUrl(url);
		this.son=new AudioStream(new FileInputStream(this.getUrl()));
	}

	public void play(){
		AudioPlayer.player.start(this.son);
	}

	public void pause(){
		AudioPlayer.player.stop(this.son);
	}
	
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public AudioStream getSon() {
		return son;
	}
	
	public static void main(String[] args){
		// Modifier ici l'adresse du fichier wav
		String url="fichier.wav";
		
		final Wav wav;
		try {
			wav = new Wav(url);
			
			JFrame f = new JFrame();
			f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			
			JPanel p=new JPanel(new GridLayout(1,2,1,1));
			JButton boutonPlay = new JButton("Play");
			boutonPlay.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e) {
					wav.play();
				}
			});
			JButton boutonPause = new JButton("Pause");
			boutonPause.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e) {
					wav.pause();  
				}

			});
			p.add(boutonPlay);
			p.add(boutonPause);
			f.setContentPane(p);
			f.validate();
			f.setSize(500,500);
			f.setVisible(true);
			
		}
		catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		catch (IOException e) {
			e.printStackTrace();
		}	
	}	
}

A voir également

Ajouter un commentaire

Commentaires

pyo656
Messages postés
34
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
19 février 2010
-
C'est pas mal mais déjà d'autres sources du même genre sont dispo sur le site ;)

Bonne continuation !
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
248 -
C'est vrai mais je pense que les méthodes utilisées sont différentes, j'en suis même quasi certain, j'ai mis un moment à trouver comment faire, et j'ai testé plusieurs programmes dont certains que j'ai trouvé sur ce site, ils fonctionnaient mais, ce n'était pas exactement ce que je voulais.
cs_mariemoi
Messages postés
2
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
22 mai 2010
-
Alors, je dois vraiment ne pas avoir l'esprit clair, mais qu'est ce qui est attendu comme adresse dans "adresse du fichier wav".. J'arrive pas a faire marcher ton programme! je dois pas être très douée ;)
pyo656
Messages postés
34
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
19 février 2010
-
C'est l'endroit où est situé ton fichier wav.

Tu peux y mettre le chemin relatif. Donc, si ton fichier est dans le même dossier que la classe, tu mets juste 'nomdufichier.wav', si il est dans un dossier "sounds", tu mets 'sounds/nomdufichier.wav'
cs_mariemoi
Messages postés
2
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
22 mai 2010
-
Effectivement, j'avais juste un problème de backslash...
Merci beaucoup

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.