Lire les fichiers .wav

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 298 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

Messages postés
16
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
17 mai 2014

j'ai un problème au niveau de l'importation es bibliothèques :
import sun.audio.AudioStream;
import controleur.Parametres;

l'IDE m'alerte une erreur je sais pas comment les corriger !! une explication s'il vous plait
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Je viens de me rendre compte que ces méthodes n'étaient plus valides avec java 1.6. donc si ca ne fonctionne pas chez vous, c'est peut être une question de version.
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
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'
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 ;)
Afficher les 7 commentaires

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.