bonjour ..
alors ouveau que je suis je m'attaque a de grd projet je veux realiser un sampleur...mais j'ai un probleme grace a la classe suivante je peut lire un son mais je ne sais pas comment faire pour la jouer tant de foi a la minute .. j'ai pourtant eplucher google en long large et travers
mais bon
si qq a l'aimable gentillesse de me donner la solution ca serait super classe!!!!
ou mieux si qq peut me m'indiquer ou je peut trouver la source de la fonction loop(int i) de la class clip ca serait de la balle
merci
/* player non bloquant
* play stop
* restart on replay
* looping marche mais merdique (à revoir)
*/
package sampleur51;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.Object.*;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.Line;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.Mixer;
import java.util.Timer.*;
import javax.swing.Timer;
class player implements LineListener
{
private static final int EXTERNAL_BUFFER_SIZE = 128000;
private Clip m_clip;
private File clipFile;
private static int loop;
private static boolean b;
private String nomSample;
static ActionListener taskPerformer2;
static ActionListener taskPerformer;
public Timer t2;
public player( String nom )
{
nomSample = new String(nom);
}
public void update(LineEvent event)
{
if (event.getType().equals(LineEvent.Type.STOP))
{
m_clip.close();
}
else if (event.getType().equals(LineEvent.Type.CLOSE))
{
//System.exit(0);
}
}
public void stopfile()
{
m_clip.close();
clipFile=null;
}
public void playfile()
{
if(clipFile==null)
{
clipFile = new File(nomSample);
AudioInputStream audioInputStream = null;
try
{
audioInputStream = AudioSystem.getAudioInputStream(clipFile);
}
catch (Exception e)
{}
if (audioInputStream != null)
{
AudioFormat format = audioInputStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
try
{
m_clip = (Clip) AudioSystem.getLine(info);
m_clip.addLineListener(this);
m_clip.open(audioInputStream);
}
catch (LineUnavailableException e)
{}
catch (IOException e)
{}
m_clip.open();
}
else
{}
}
else
{}
}
public Clip getClip()
{
return m_clip;
}
}