Mercurial > hg > Members > kent > SpectrumViewer
view src/SpectrumViewer.java @ 0:5c6db5d47717 default tip
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Dec 2008 15:04:03 +0900 |
parents | |
children |
line wrap: on
line source
import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.WindowListener; import java.awt.event.WindowEvent; import javax.sound.sampled.*; public class SpectrumViewer extends Frame { private Plotter plotter; private Plotter sprPlotter; private Container controler; private AudioListener audioListener; private Button startButton; private Button stopButton; public static void main(String[] args) throws Exception{ SpectrumViewer mw = new SpectrumViewer(); mw.setVisible(true); } public SpectrumViewer() { super("mainwindow"); setSize(400, 600); //setLayout(new BorderLayout()); setLayout(new BorderLayout()); /* startButton */ startButton = new Button("Start"); startButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { SpectrumViewer.this.startAudioListener(); } }); /* stopButton */ stopButton = new Button("Stop"); stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { SpectrumViewer.this.stopAudioListener(); } }); //stopButton.setVisible(false); /* control panel */ controler = new Container(); controler.setLayout(new BorderLayout()); controler.add(startButton, BorderLayout.EAST); controler.add(stopButton, BorderLayout.WEST); plotter = new Plotter(-128, 127); sprPlotter = new Plotter(0, 127); Container tmp = new Container(); tmp.setLayout(new GridLayout(2,1)); tmp.add(plotter); tmp.add(sprPlotter); /* Frame set */ //add(plotter, BorderLayout.SOUTH); //add(sprPlotter, BorderLayout.CENTER); //add(controler, BorderLayout.NORTH); //add(plotter); //add(sprPlotter); add(tmp, BorderLayout.CENTER); add(controler, BorderLayout.NORTH); addWindowListener(new WindowListener() { public void windowActivated(WindowEvent e){ } public void windowClosed(WindowEvent e){ } public void windowDeactivated(WindowEvent e){ } public void windowDeiconified(WindowEvent e){ } public void windowIconified(WindowEvent e){ } public void windowOpened(WindowEvent e){ } public void windowClosing(WindowEvent e){ System.out.println("exit"); System.exit(0); } }); } public void startAudioListener() { AudioFormat format; //format = new AudioFormat(8000, 8, 1, true, true); format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000, 8, 1, 1, 16000, true); audioListener = new AudioListener(format, plotter, sprPlotter, 50,true); audioListener.start(); System.out.println("start button was clicked"); System.out.println("frame rate: "+format.getFrameRate()); System.out.println("frame size: "+format.getFrameSize()); //System.out.println("property: "+format.getProperty()); System.out.println("sample rate: "+format.getSampleRate()); System.out.println("sample bits: "+format.getSampleSizeInBits()); System.out.println("big endian: "+format.isBigEndian()); //controler.remove(startButton); //controler.add(stopButton); } public void stopAudioListener() { audioListener.stop(); audioListener=null; System.out.println("stop button was clicked"); //stopButton.setVisible(false); //controler.remove(stopButton); //controler.add(startButton); } /* * AudioFormat( encoding, sampleRate, sampleSizeInBits, * channels, frameSize, frameRate, bigEndian) * sampleRate: 1秒間の1チャネル毎のサンプリング周波数 8000, 44100 * sampleSizeInBits: 1サンプルのbit数 8, 16 * channels: the number of channels 1(mono) or 2(stereo) * frameSize: * */ }