24 Ocak 2018 Çarşamba

JavaSound AudioSystem Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.sound.sampled.AudioSystem;
- Bu sınıf aracılığı ile yaratılan Clip nesnesi ile wav dosyası çalar.
- Bu sınıf Mixer'lere erişim sağlar. Mixer'ler sayesinde mikrofon ve hoparlöre erişiriz.

getAudioInputStream - File
Şöyle yaparız
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
  new File("C:\\a.wav"));
getAudioInputStream metodu - InputStream
Çalmak için bir stream yaratır.
Örnek
Şöyle yaparız.
DataInputStream dis = ...
AudioInputStream inputStream = AudioSystem.getAudioInputStream(dis);
Örnek
Şöyle yaparız.
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
  Main.class.getResourceAsStream(Constants.SOUND_ALERT));
getAudioInputStream metodu - URL
Örnek
Şöyle yaparız.
URL audioFileUrl = MainClass.class.getClassLoader().getResource("audio/two.wav"");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(audioFileUrl);
getClip metodu
Clip nesnesi döner. Clip nesnesi verilen AudioInputStream'i çalar. Şöyle yaparız.
Clip clip = AudioSystem.getClip();
Belli bir mixer için Clip nesnesini şöyle alırız.
Mixer.Info info = ...;
Clip clip = AudioSystem.getClip (info);
getLine metodu
Mixer'ın girişini veya çıkışını almak mümkün. getTargetDataLine() veya getSourceDataLine() metodlarını kullanmak daha uygun.

Örnek
Şöyle yaparız.
AudioFormat af = new AudioFormat(8000.0f,8,1,true,false);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, af);
TargetDataLine microphone = (TargetDataLine)AudioSystem.getLine(info);
Örnek
Şöyle yaparız.
AudioFormat af = new AudioFormat(8000.0f,8,1,true,false);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, af);
SourceDataLine speaker = (SourceDataLine)AudioSystem.getLine(info);
getMixer metodu
Şöyle yaparız.
Mixer mixer = AudioSystem.getMixer(mixerInfo[1]);
getMixerInfo metodu
Sistemdeki Mixer'leri verir.
Örnek
Şöyle yaparız.
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
getSourceDataLine metodu
Ses çıkışını yani hoparlörü verir. Şöyle yaparız.
float SAMPLE_RATE = 8000f;
AudioFormat af = new AudioFormat(SAMPLE_RATE,8,1,true,false);     
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
getTargetDataLine metodu
Aslında Mixer'in çıkışını verir. Mixer'in çıkışı mixer açısında target olduğu için isimlendirmesi biraz tuhaf geliyor. Pratikte ses girişini yani mikrofonu verir.

Örnek
Şöyle yaparız.
AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true);
TargetDataLine microphone = AudioSystem.getTargetDataLine(format);


Hiç yorum yok:

Yorum Gönder