亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? soundplayer.java

?? A sound Player to play mid format
?? JAVA
字號:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.sound.sampled.*;
import javax.sound.midi.*;


public class SoundPlayer extends JComponent {
    boolean midi;           
    Sequence sequence;       
    Sequencer sequencer;     
    Clip clip;               
    boolean playing = false; 
    int audioLength;         
    int audioPosition = 0;  

    JButton play;             
    JSlider progress;         
    JLabel time;          
    Timer timer;              

    public static void main(String[ ] args) 
        throws IOException,
               UnsupportedAudioFileException,
               LineUnavailableException,
               MidiUnavailableException,
               InvalidMidiDataException
    {
        SoundPlayer player;


        File file = new File("trippygaia1.mid"); //type the name of your mid file or you can also give path of the song in mid format  
        boolean ismidi;
        try {
            MidiSystem.getMidiFileFormat(file);
            ismidi = true;
        }
        catch(InvalidMidiDataException e) {
            ismidi = false;
        }

        player = new SoundPlayer(file, ismidi);
        JFrame f = new JFrame("SoundPlayer");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane( ).add(player, "Center");
        f.pack( );
        f.setVisible(true);
    }

    public SoundPlayer(File f, boolean isMidi)
        throws IOException,
               UnsupportedAudioFileException,
               LineUnavailableException,
               MidiUnavailableException,
               InvalidMidiDataException
    {
        if (isMidi) {     
            midi = true;
            sequencer = MidiSystem.getSequencer( );  
            sequencer.open( );                       

            Synthesizer synth = MidiSystem.getSynthesizer( );
            synth.open( );  
            
            Transmitter transmitter = sequencer.getTransmitter( );
            Receiver receiver = synth.getReceiver( );
            transmitter.setReceiver(receiver);
            
            sequence = MidiSystem.getSequence(f);
            sequencer.setSequence(sequence);
            audioLength = (int)sequence.getTickLength( ); 
        }
        else {            
           midi = false;
           AudioInputStream ain = AudioSystem.getAudioInputStream(f);
           try {
                DataLine.Info info =
                new DataLine.Info(Clip.class,ain.getFormat( ));
                clip = (Clip) AudioSystem.getLine(info);
                clip.open(ain);
            }
            finally { 
                ain.close( );
            }
            audioLength = (int)(clip.getMicrosecondLength( )/1000);
        }

        play = new JButton("Play");                
        progress = new JSlider(0, audioLength, 0); 
        time = new JLabel("0");                    

        play.addActionListener(new ActionListener( ) {
                public void actionPerformed(ActionEvent e) {
                    if (playing) stop( ); else play( );
                }
            });

        progress.addChangeListener(new ChangeListener( ) {
                public void stateChanged(ChangeEvent e) {
                    int value = progress.getValue( );
                    if (midi) time.setText(value + "");
                    else time.setText(value/1000 + "." +
                                      (value%1000)/100);
                    if (value != audioPosition) skip(value);
                }
            });
        
        timer = new javax.swing.Timer(100, new ActionListener( ) {
                public void actionPerformed(ActionEvent e) { tick( ); }
            });
        
        Box row = Box.createHorizontalBox( );
        row.add(play);
        row.add(progress);
        row.add(time);
        
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
        this.add(row);

        if (midi) addMidiControls( );
        else addSampledControls( );
    }

    public void play( ) {
        if (midi) sequencer.start( );
        else clip.start( );
        timer.start( );
        play.setText("Stop");
        playing = true;
    }

    public void stop( ) {
        timer.stop( );
        if (midi) sequencer.stop( );
        else clip.stop( );
        play.setText("Play");
        playing = false;
    }

    public void reset( ) {
        stop( );
        if (midi) sequencer.setTickPosition(0);
        else clip.setMicrosecondPosition(0);
        audioPosition = 0; 
        progress.setValue(0);
    }

    public void skip(int position) { 
        if (position < 0 || position > audioLength) return;
        audioPosition = position;
        if (midi) sequencer.setTickPosition(position);
        else clip.setMicrosecondPosition(position * 1000);
        progress.setValue(position); 
    }

    public int getLength( ) { return audioLength; }

    void tick( ) {
        if (midi && sequencer.isRunning( )) {
            audioPosition = (int)sequencer.getTickPosition( );
            progress.setValue(audioPosition);
        }
        else if (!midi && clip.isActive( )) {
        audioPosition = (int)(clip.getMicrosecondPosition( )/1000);
        progress.setValue(audioPosition);
        }
        else reset( );  
    }

    void addSampledControls( ) {
        try {
            FloatControl gainControl =
                (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
           if (gainControl != null) this.add(createSlider(gainControl));
        }
        catch(IllegalArgumentException e) {
          }

        try {
              FloatControl panControl =
                (FloatControl)clip.getControl(FloatControl.Type.PAN);
            if (panControl != null) this.add(createSlider(panControl));
        }
        catch(IllegalArgumentException e) {  }
    }

    JSlider createSlider(final FloatControl c) {
        if (c == null) return null;
        final JSlider s = new JSlider(0, 1000);
        final float min = c.getMinimum( );
        final float max = c.getMaximum( );
        final float width = max-min;
        float fval = c.getValue( );
        s.setValue((int) ((fval-min)/width * 1000));

        java.util.Hashtable labels = new java.util.Hashtable(3);
        labels.put(new Integer(0), new JLabel(c.getMinLabel( )));
        labels.put(new Integer(500), new JLabel(c.getMidLabel( )));
        labels.put(new Integer(1000), new JLabel(c.getMaxLabel( )));
        s.setLabelTable(labels);
        s.setPaintLabels(true);

        s.setBorder(new TitledBorder(c.getType( ).toString( ) + " " +
                                     c.getUnits( )));

        s.addChangeListener(new ChangeListener( ) {
                public void stateChanged(ChangeEvent e) {
                    int i = s.getValue( );
                    float f = min + (i*width/1000.0f);
                    c.setValue(f);
                }
            });
        return s;
    }

    void addMidiControls( ) {
        final JSlider tempo = new JSlider(50, 200);
        tempo.setValue((int)(sequencer.getTempoFactor( )*100));
        tempo.setBorder(new TitledBorder("Tempo Adjustment (%)"));
        java.util.Hashtable labels = new java.util.Hashtable( );
        labels.put(new Integer(50), new JLabel("50%"));
        labels.put(new Integer(100), new JLabel("100%"));
        labels.put(new Integer(200), new JLabel("200%"));
        tempo.setLabelTable(labels);
        tempo.setPaintLabels(true);
        tempo.addChangeListener(new ChangeListener( ) {
                public void stateChanged(ChangeEvent e) {
                sequencer.setTempoFactor(tempo.getValue( )/100.0f);
                }
            });

        this.add(tempo);

        Track[  ] tracks = sequence.getTracks( );
        for(int i = 0; i < tracks.length; i++) {
            final int tracknum = i;
            final JCheckBox solo = new JCheckBox("solo");
            final JCheckBox mute = new JCheckBox("mute");
            solo.addActionListener(new ActionListener( ) {
            public void actionPerformed(ActionEvent e) {
                         sequencer.setTrackSolo(tracknum,solo.isSelected( ));
                    }
                });
            mute.addActionListener(new ActionListener( ) {
                    public void actionPerformed(ActionEvent e) {
                        sequencer.setTrackMute(tracknum,mute.isSelected( ));
                    }
                });

            Box box = Box.createHorizontalBox( );
            box.add(new JLabel("Track " + tracknum));
            box.add(Box.createHorizontalStrut(10));
            box.add(solo);
            box.add(Box.createHorizontalStrut(10));
            box.add(mute);
            box.add(Box.createHorizontalGlue( ));
            this.add(box);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费在线观看| 国产在线视视频有精品| 555夜色666亚洲国产免| 激情小说亚洲一区| 亚洲欧美日韩久久精品| 精品国产三级a在线观看| 91啪亚洲精品| 国产一区二区毛片| 亚洲成人资源网| 国产精品久久久一本精品| 91精品午夜视频| 日本道在线观看一区二区| 国产成人av影院| 婷婷开心久久网| 亚洲美女一区二区三区| 久久久www免费人成精品| 6080yy午夜一二三区久久| 97国产一区二区| 国产精品亚洲一区二区三区在线| 五月婷婷另类国产| 亚洲九九爱视频| 亚洲欧洲国产日韩| 国产亚洲欧美日韩在线一区| 欧美va亚洲va国产综合| 8v天堂国产在线一区二区| 色综合天天狠狠| 成人性生交大片免费看中文网站| 国内精品国产三级国产a久久 | 偷拍与自拍一区| 自拍偷拍国产亚洲| 亚洲国产成人私人影院tom| 精品少妇一区二区三区视频免付费 | 久久91精品国产91久久小草| 亚洲高清视频在线| 亚洲国产精品自拍| 亚洲精品欧美激情| 一区二区三区资源| 综合激情网...| 亚洲欧美激情一区二区| 亚洲欧美偷拍卡通变态| 综合分类小说区另类春色亚洲小说欧美 | 92精品国产成人观看免费| 丰满少妇在线播放bd日韩电影| 国产一区二区三区免费观看| 精品亚洲国产成人av制服丝袜 | 国产91在线|亚洲| 成人永久免费视频| 成人av在线网| 91小宝寻花一区二区三区| av亚洲精华国产精华精华| eeuss影院一区二区三区| eeuss国产一区二区三区| av电影在线观看完整版一区二区| 91网上在线视频| 欧美三级一区二区| 在线播放/欧美激情| 日韩免费观看2025年上映的电影| 精品国产污污免费网站入口| 国产精品丝袜久久久久久app| 中日韩免费视频中文字幕| 亚洲视频你懂的| 亚洲高清三级视频| 狠狠色丁香九九婷婷综合五月| 丁香婷婷综合网| 色域天天综合网| 91精品国产综合久久精品| 久久众筹精品私拍模特| 亚洲视频一区在线| 爽好多水快深点欧美视频| 激情欧美一区二区| 91丨九色丨蝌蚪丨老版| 欧美日韩电影在线| 国产午夜精品福利| 亚洲一区二区三区激情| 老司机精品视频导航| 99久久婷婷国产精品综合| 欧美人狂配大交3d怪物一区| 久久精品日产第一区二区三区高清版| 亚洲人精品午夜| 另类欧美日韩国产在线| 不卡视频在线观看| 制服丝袜亚洲精品中文字幕| 国产亚洲综合在线| 亚洲电影你懂得| 国产成人av一区| 欧美日韩一级大片网址| 国产午夜亚洲精品理论片色戒| 一区二区三区资源| 国产成人自拍网| 欧美狂野另类xxxxoooo| 日本一区二区三区免费乱视频| 亚洲第一电影网| 成人小视频在线| 日韩亚洲欧美在线| 一区二区三区在线视频观看 | 91黄色在线观看| 2021国产精品久久精品| 亚洲精品少妇30p| 国产老妇另类xxxxx| 欧美另类久久久品| 136国产福利精品导航| 美日韩一区二区| 在线亚洲高清视频| 国产日韩欧美一区二区三区综合| 日韩电影在线免费观看| 色婷婷av一区二区三区之一色屋| 国产日韩亚洲欧美综合| 久久国产剧场电影| 69久久99精品久久久久婷婷| 亚洲精品中文在线影院| 国产在线一区二区综合免费视频| 欧美精品777| 亚洲激情在线播放| 不卡的av网站| 中文无字幕一区二区三区 | 亚洲三级在线免费| 国产精品一区久久久久| 日韩视频在线一区二区| 亚洲与欧洲av电影| 99热99精品| 国产精品视频线看| 国产精品91xxx| 欧美成人激情免费网| 五月激情综合婷婷| 欧美日韩一区二区三区视频| 国产精品美女久久福利网站| 国产成人午夜精品影院观看视频| 日韩欧美久久久| 久久精品国产99国产| 91精品国产美女浴室洗澡无遮挡| 午夜欧美电影在线观看| 欧美亚洲国产bt| 一区二区三区在线高清| 色一情一乱一乱一91av| 亚洲丝袜另类动漫二区| 成人av免费观看| 亚洲另类一区二区| 在线观看视频91| 午夜久久久影院| 制服.丝袜.亚洲.中文.综合| 日韩高清在线一区| 日韩视频免费观看高清完整版| 视频一区免费在线观看| 91精品啪在线观看国产60岁| 毛片av一区二区| 精品国产一区二区三区久久影院| 国产一区二区视频在线播放| 久久精品一区二区三区不卡| 国产suv精品一区二区6| 国产精品乱人伦| 91美女精品福利| 亚洲资源中文字幕| 欧美日韩日日夜夜| 久久精品久久精品| 国产清纯白嫩初高生在线观看91 | 亚洲国产精品久久人人爱蜜臀| 日本高清视频一区二区| 亚洲午夜激情网站| 91精品国产91综合久久蜜臀| 看片网站欧美日韩| 国产日产欧美一区| 一本大道久久精品懂色aⅴ| 亚洲一区二区三区四区五区黄| 7777精品伊人久久久大香线蕉| 国内精品国产成人| 亚洲欧美在线观看| 欧美日韩国产高清一区| 国内精品视频一区二区三区八戒| 国产精品成人免费精品自在线观看| 色综合视频一区二区三区高清| 日韩精品一级中文字幕精品视频免费观看| 日韩欧美久久久| 99久久婷婷国产综合精品 | 99国产精品久久久久久久久久 | 精品国产亚洲一区二区三区在线观看| 国产一区不卡在线| 亚洲与欧洲av电影| 国产亚洲一二三区| 欧美三级日韩三级国产三级| 国产一区二区三区最好精华液| 亚洲久草在线视频| 久久毛片高清国产| 在线视频国内一区二区| 国产一区二区0| 亚欧色一区w666天堂| 久久精品亚洲精品国产欧美kt∨ | 国产福利一区二区| 亚洲在线免费播放| 欧美极品aⅴ影院| 欧美三级韩国三级日本一级| 国产成人精品网址| 偷拍自拍另类欧美| 亚洲欧洲制服丝袜| 国产亚洲欧美日韩俺去了| 欧美三级电影网站| 国产91精品露脸国语对白| 日韩不卡在线观看日韩不卡视频| 亚洲欧美色图小说| 久久久久久久久久久久电影| 6080亚洲精品一区二区|