戯言
JAVA Soundで困っている方がいるので
助けてあげることにしました。
しかし、ながら、彼らはJAVAドク当に目を通すことは
していないのだろう・
私は彼らの病を入門書指向症候群と呼んでいる
JAVASound
目次
○オーディオの再生方法
動的再生 静的再生
○新たな検索スタイルを考えよう
○汎用的な部分について
○主な難題
Mixerからデバイスを取得する
import javax.sound.sampled.*;
public class PrintMixer
{
public static void main(String args[])
{
Mixer.Info[] infos;
infos = AudioSystem.getMixerInfo();
for(int i = 0; i < infos.length;i++ )
{
System.out.println("i番目 "+i);
System.out.println("getDiscription "+infos[i].getDescription());
System.out.println("getName "+infos[i].getName());
System.out.println("getVendor "+infos[i].getVendor());
System.out.println("getVersion "+infos[i].getVersion());
System.out.println("toString "+infos[i].toString());
}
}
}
PortからLineを取得する
Lineを取得する方法は3種類あります
Port.Infoから取得する方法DataLine.Info
かせ取得する方法、そしてMixerから
取得する方法です
今回はマイクから音声をとりたいとの事なので
Portを学びます
import javax.sound.sampled.*;
public class GetLineFromPort
{
public static void main(String args[])
{
if(AudioSystem.isLineSupported(Port.Info.MICROPHONE))
{
System.out.println("MICROPHONE SUPPORTED");
}
else
{
System.out.println("DO NOT MICROPHONE SUPPORTED");
return;
}
Port port = null;
try
{
port = (Port)AudioSystem.getLine(
Port.Info.MICROPHONE
);
}
catch(LineUnavailableException er)
{
System.out.println("LineUnavailableException");
}
}
}
○動的再生と静的再生(←造語です)
動的再生 SourceDataLine
静的再生 Clip