Mam następujący problem
Uczę się dopiero obsługi dźwięku w javie i jak na razie stworzyłem taki kod:
private Position curPosition;
private final int EXTERNAL_BUFFER_SIZE = 524288; //128Kb
enum Position{
LEFT, RIGHT, NORMAL
};
public void odtworz(char l)
{
String sciezkadop = "C:/aio/czytacz/"+l+".wav";
File plikdzwiekuliter = new File(sciezkadop);
if (!plikdzwiekuliter.isFile())
{
System.err.println("Nie ma pliku " + l);
}
if (!plikdzwiekuliter.exists())
{
System.err.println("Plik jest otwarty przez inna aplikacje (wav) :" + l);
return;
}
AudioInputStream ais = null;
try {
ais = AudioSystem.getAudioInputStream(plikdzwiekuliter);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
System.err.println("Nie dziala wava :" + l);
return;
} catch (IOException e1) {
e1.printStackTrace();
System.err.println("Nie dziala wava :" + l);
return;
}
AudioFormat format = ais.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try {
auline = (SourceDataLine) AudioSystem.getLine(info);
} catch (LineUnavailableException e1) {
e1.printStackTrace();
System.err.println("Nie dziala wava :" + l);
return;
} catch (Exception e1) {
e1.printStackTrace();
System.err.println("Nie dziala wava :" + l);
return;
}
if (auline.isControlSupported(FloatControl.Type.PAN)) {
FloatControl pan = (FloatControl) auline
.getControl(FloatControl.Type.PAN);
if (curPosition == Position.RIGHT)
pan.setValue(1.0f);
else if (curPosition == Position.LEFT)
pan.setValue(-1.0f);
}
auline.start();
int nByteRead = 0;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
try {
while (nByteRead!= -1) {
nByteRead = ais.read(abData, 0, abData.length);
if (nByteRead >= 0)
auline.write(abData, 0, nByteRead);
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
auline.drain();
auline.close();
}
}
kod jest wzorowany na http://www.anyexample.com/programming/java/java_play_wav_sound_file.xml
(tak wiem praktycznie przepisany)
program działa, wykonuje się ale nie ma dźwięku. Czemu?
używam eclipse i nie doinstalowywałem żadnych dodatków (wersja jest najnowsza)
(zaimportowałem
import javax.sound.sampled.;
import java.io.;)