Giriş
Şu satırı dahil ederiz.
3. SourceDataLine.start() çağrısı ile çalma işlemi başlatılılır.
4. SourceDataLine.write() çağrısı ile çalınacak müzik diskten okundukça verilir.
5. Çalma işlemi bitince SourceDataLine.drain() ve SourceDataLine.stop() çağrıları ile nesnede bekleyen veri de çalınır ve hoparlör kapatılır
constructor
Şöyle yaparız.
Şu satırı dahil ederiz.
import javax.sound.sampled.SourceDataLine;
Ses çıkarma işlemini gerçekleştiren sınıftır. Yazılan veriyi çalar.
Kullanım Şekli
1. AudioSystem.getLine() çağrısı ile SourceDataLine nesnesi elde edilir.
2.
SourceDataLine.open(AudioFormat) çağrısı ile ses çıkışı açılır3. SourceDataLine.start() çağrısı ile çalma işlemi başlatılılır.
4. SourceDataLine.write() çağrısı ile çalınacak müzik diskten okundukça verilir.
5. Çalma işlemi bitince SourceDataLine.drain() ve SourceDataLine.stop() çağrıları ile nesnede bekleyen veri de çalınır ve hoparlör kapatılır
constructor
Örnek
Şöyle yaparız.
Şöyle yaparız.
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine sdl = (SourceDataLine) 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 s
peaker = (SourceDataLine)AudioSystem.getLine(info);
close metodu
sdl.close();
drain metodu
sdl.drain();
getControl metodu
Şöyle yaparız.FloatControl volume = (FloatControl)audioOutput.getControl
(FloatControl.Type.VOLUME);
Şöyle yaparız.
Şöyle yaparız.FloatControl masterGain =
(FloatControl)audioOutput.getControl (FloatControl.Type.MASTER_GAIN);
isControlSupported metoduSourceDataLine audioOutput = ...;
if ( audioOutput.isControlSupported (FloatControl.Type.VOLUME) ) {
FloatControl volume = (FloatControl)audioOutput.getControl
(FloatControl.Type.VOLUME);
...
}
Şöyle yaparız.if ( audioOutput.isControlSupported (FloatControl.Type.MASTER_GAIN) ) {
FloatControl volume =
(FloatControl)audioOutput.getControl (FloatControl.Type.MASTER_GAIN);
...
}
open metodu
Örnek
Şöyle yaparız.
Şöyle yaparız.
AudioFormat format = ...;
SourceDataLine sdl = ...;
sdl.open(format);
Örnek
Şöyle yaparız.AudioFormat af = new AudioFormat(8000.0f,8,1,true,false);
speaker.open(af);
start metoduaudioLine.start();
write metodu
ÖrnekŞöyle yaparız.
byte[] buffer = ...;
speaker.write(buffer, 0, buffer.length);
speaker.drain();
int BUFFER_SIZE = 4096;
byte[] bytesBuffer = new byte[BUFFER_SIZE] = ...;
sdl.write(bytesBuffer, 0, BUFFER_SIZE
);
Örnek
Beep sesi çıkarmak için şöyle yaparız.
Beep sesi çıkarmak için şöyle yaparız.
import javax.sound.sampled.*;
public class Sound
{
public static float SAMPLE_RATE = 8000f;
public static void tone(int hz, int msecs)
throws LineUnavailableException {
tone(hz, msecs, 1.0);
}
public static void tone(int hz, int msecs, double vol)
throws LineUnavailableException {
byte[] buf = new byte[1];
AudioFormat af = new AudioFormat(SAMPLE_RATE,8,1,true,false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
for (int i=0; i < msecs*8; i++) {
double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
buf[0] = (byte)(Math.sin(angle) * 127.0 * vol);
sdl.write(buf,0,1);
}
sdl.drain();
sdl.stop();
sdl.close();
}
public static void main(String[] args) throws Exception {
Sound.tone(15000,1000);
}
}
Hiç yorum yok:
Yorum Gönder