una solución sin java reflexión DataLine.Info info = nueva DataLine.Info (SourceDataLine.class, audioFormat); reflexión de java, disminución del rendimiento. a ejecutar: java tocarsonido absoluteFilePathTo/file.wav
import javax.sound.sampled.*;
import java.io.*;
public class playsound
{
public static void main (String args[]) throws Exception
{
playSound (args [0]);
}
public static
void playSound
(
String filename
) throws Exception
{
AudioInputStream
audioStream =
AudioSystem.getAudioInputStream
(new File (filename));
int BUFFER_SIZE = 128000;
AudioFormat audioFormat = null;
SourceDataLine sourceLine = null;
audioFormat = audioStream.getFormat();
sourceLine = (SourceDataLine)
AudioSystem.getSourceDataLine
(audioFormat);
sourceLine.open (audioFormat);
sourceLine.start();
int nBytesRead = 0;
byte[] abData = new byte[BUFFER_SIZE];
while (nBytesRead != -1)
{
try
{
nBytesRead =
audioStream.read
(abData, 0, abData.length);
}
catch (IOException e)
{
e.printStackTrace();
}
if (nBytesRead >= 0)
{
int nBytesWritten =
sourceLine.write
(abData, 0, nBytesRead);
}
}
sourceLine.drain();
sourceLine.close();
}
}
lo que no estaba funcionando y por qué – Bozho