14 Aralık 2017 Perşembe

JavaSound TargetDataLine Arayüzü - Mikrofon

Mikrofonun Takılı Olduğunu Anlamak
Şöyle yaparız.AudioFormat'a verilen parametreler
- sample rate,
- sample size in bits,
- channel sayısı (Mono için 1 Stereo channel için 2 verilir),
- signed ve
- big endian
anlamına gelir.
TargetDataline mic = null;

try{
  AudioFormat af = new AudioFormat(48000,16,2,true,true);
  DataLine.Info info = new DataLine.Info(TargetDataline.class,af);
  if(AudioSystem.isLineSupported(info)){
    mic=(TargetDataline)AudioSystem.getLine(info);
  }
}catch(LineUnavailableException e){
  ...
}
constructor
AudioSystem.getLine() çağrısı ile mikrofon nesnesi elde edilir.

Ö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);
open metodu
Şöyle yaparız.
AudioFormat af = new AudioFormat(8000.0f,8,1,true,false);
microphone.open(af);
read metodu
Şöyle yaparız.
byte[] soundData = ...;

int bytesRead = microphone.read(soundData, 0, soundData.length);
start metodu
Şöyle yaparız.
microphone.start();
Diğer
Mikrofondan Veri Okumak
Döngü içinde şöyle yaparız
byte[] buffer = new byte[1024];
microphone.start();
while(continueFlag){
  int result = microphone.read(buffer,0,buffer.length);
  if (read > 0{
    ...
  }
}
microphone.stop();
  

Hiç yorum yok:

Yorum Gönder