-
carte son et java
Bonjour tous,:coucou:
je veux fairee une application qui me permet de recuperer le son a la sortie de la carte son dans un fichier audio wav ou autre,
j'ai deja telecharge la bibliotheque javax.sound,
le pb c que je n'ai trouvé que des codes pour enregistrer le inputstream, moi je cherche à enregistrer le outputstream,
Merci pour l'aide
@+:D
-
Tu dois confondre les termes avec le contexte.
Lit la doc de InputStream et OutputStream. Ce sont des flux respectivement de lecture et d'écriture pour Java. Rien à voir avec le flux sonore.
Il faut que tu fasses en sorte de lire ton son de sortie avec un InputStream.
Peux pas t'aider plus que ça, dsl.
-
et comment le faire,:calim2:
comment je peux mettre la sortie de la carte son dans un fichier
voila un pg pour enregistrer ce qu'on prononce par haut parleur,
mois je veux au lieu de lire du microphone lire la sortie de la carte son:cry:
import java.io.IOException;
import java.io.File;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.TargetDataLine;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.AudioFileFormat;
public class SimpleAudioRecorder extends Thread {
private TargetDataLine m_line;
private AudioFileFormat.Type m_targetType;
private AudioInputStream m_audioInputStream;
private File m_outputFile;
public SimpleAudioRecorder(TargetDataLine line,
AudioFileFormat.Type targetType,
File file)
{
m_line = line;
m_audioInputStream = new AudioInputStream(line);
m_targetType = targetType;
m_outputFile = file;
}
public void start()
{
m_line.start();
super.start();
}
public void stopRecording()
{
m_line.stop();
m_line.close();
}
public void run()
{
try
{
AudioSystem.write(
m_audioInputStream,
m_targetType,
m_outputFile);
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
String strFilename = new String("f");
File outputFile = new File(strFilename);
AudioFormat audioFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
44100.0F, 16, 2, 4, 44100.0F, false);
TargetDataLine targetDataLine = null;
if (AudioSystem.isLineSupported(Port.Info.MICROPHONE)) {
try {
targetDataLine = (Port) AudioSystem.getLine(
Port.Info.MICROPHONE);
}catch (LineUnavailableException ex) {}
}
DataLine.Info info = new DataLine.Info(TargetDataLine.cl
//TargetDataLine targetDataLine = null;
try
{
targetDataLine = (TargetDataLine) AudioSystem.getLine(
targetDataLine.open(audioFormat);
}
catch (LineUnavailableException e)
{
out("unable to get a recording line");
e.printStackTrace();
System.exit(1);
}
AudioFileFormat.Type targetType = AudioFileFormat.Type.
SimpleAudioRecorder recorder = new SimpleAudioRecorder(
targetDataLine,
targetType,
outputFile);
out("Press ENTER to start the recording.");
try
{
System.in.read();
}
catch (IOException e)
{
e.printStackTrace();
}
recorder.start();
out("Recording...");
out("Press ENTER to stop the recording.");
try
{
System.in.read();
}
catch (IOException e)
{
e.printStackTrace();
}
try {
// pause
Thread.sleep(4000);
}
catch (InterruptedException ex) {}
recorder.stopRecording();
out("Recording stopped.");
}
private static void printUsageAndExit()
{
out("SimpleAudioRecorder: usage:");
out("\tjava SimpleAudioRecorder -h");
out("\tjava SimpleAudioRecorder <audiofile>");
System.exit(0);
}
private static void out(String strMessage)
{
System.out.println(strMessage);
}
}