⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 musiceffects.java

📁 j2me源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            addCommand(finishSetupCommand);
            setCommandListener(finishSetupCommandListener);

        }

        public void itemStateChanged(Item item) {
            if (item == null)
                return;
            else if (item == wetLevelGauge)
                try {
                    chorusControl.setWetLevel(wetLevelGauge.getValue() * 100 / MAX_GAUGE_VALUE);
                } catch (Exception e) {
                    System.out.println(e);
                }
            else if (item == modulationRateGauge)
                try {
                    //System.out.println("mr=" + (minModulationRate + modulationRateGauge.getValue() * (maxModulationRate - minModulationRate) / MAX_GAUGE_VALUE));
                    chorusControl.setModulationRate(minModulationRate + modulationRateGauge.getValue() * (maxModulationRate - minModulationRate) / MAX_GAUGE_VALUE);
                } catch (Exception e) {
                    System.out.println(e);
                }
            else if (item == modulationDepthGauge)
                try {
                    chorusControl.setModulationDepth(modulationDepthGauge.getValue() * maxModulationDepth / MAX_GAUGE_VALUE);
                } catch (Exception e) {
                    System.out.println(e);
                }
            else if (item == averageDelayGauge)
                try {
                    chorusControl.setAverageDelay(averageDelayGauge.getValue() * maxAverageDelay / MAX_GAUGE_VALUE);
                } catch (Exception e) {
                    System.out.println(e);
                }
            else if (item == presetChoice) {
                if (0 == presetChoice.getSelectedIndex())
                    chorusControl.setEnabled(false);
                else {
                    if (!chorusControl.isEnabled())
                        chorusControl.setEnabled(true);
                    chorusControl.setPreset(presetChoice.getString(presetChoice.getSelectedIndex()));
                }
                updateControls();
            }
        }

        public void updateControls() {
            //System.out.println("Wet level = " + chorusControl.getWetLevel());
            //System.out.println("Modulation rate (" + minModulationRate + " to " + maxModulationRate + ") = " + chorusControl.getModulationRate());
            //System.out.println("Modulation depth = " + chorusControl.getModulationDepth());
            //System.out.println("Average delay = " + chorusControl.getAverageDelay());
            wetLevelGauge       .setValue(chorusControl.getWetLevel() * MAX_GAUGE_VALUE / 100);
            modulationRateGauge .setValue((chorusControl.getModulationRate() - minModulationRate) * MAX_GAUGE_VALUE / (maxModulationRate - minModulationRate));
            modulationDepthGauge.setValue(chorusControl.getModulationDepth() * MAX_GAUGE_VALUE / maxModulationDepth);
            averageDelayGauge   .setValue(chorusControl.getAverageDelay() * MAX_GAUGE_VALUE / maxAverageDelay);
        }

    }

    
    // mainForm stuff
    
    public class MainForm extends Form implements ItemStateListener {

        //ChoiceGroup playersChoice = new ChoiceGroup("Music selector", Choice.MULTIPLE);
        final static int BASS_CONTROL_NUM = 2;

        Gauge volumeGauge = new Gauge("Volume", true, MAX_GAUGE_VALUE, MAX_GAUGE_VALUE);
        Gauge panGauge    = new Gauge("Pan",    true, MAX_GAUGE_VALUE, MAX_GAUGE_VALUE / 2);
        Gauge bassGauge   = new Gauge("Bass",   true, MAX_GAUGE_VALUE, 0);
        Gauge trebleGauge = new Gauge("Treble", true, MAX_GAUGE_VALUE, 0);
        StringItem equalizerButton = new StringItem("Advanced equalizer setup", null, Item.BUTTON);
        StringItem reverbButton    = new StringItem("Setup reverberation", null, Item.BUTTON);
        StringItem chorusButton    = new StringItem("Setup chorus", null, Item.BUTTON);
        ChoiceGroup audioVirtualizerChoice = new ChoiceGroup("Audio virtualizer preset", Choice.EXCLUSIVE);

        public MainForm() {
            super("Advanced Music Player");

            volumeGauge.setLayout(Item.LAYOUT_EXPAND);
            panGauge   .setLayout(Item.LAYOUT_EXPAND);
            bassGauge  .setLayout(Item.LAYOUT_EXPAND);
            trebleGauge.setLayout(Item.LAYOUT_EXPAND);
            equalizerButton.setLayout(Item.LAYOUT_CENTER);
            reverbButton   .setLayout(Item.LAYOUT_CENTER);
            chorusButton   .setLayout(Item.LAYOUT_CENTER);

            equalizerButton.setDefaultCommand(setupItemCommand);
            reverbButton   .setDefaultCommand(setupItemCommand);
            chorusButton   .setDefaultCommand(setupItemCommand);
            equalizerButton.setItemCommandListener(new SetupItemCommandListener(equalizerForm));
            reverbButton   .setItemCommandListener(new SetupItemCommandListener(reverbForm));
            chorusButton   .setItemCommandListener(new SetupItemCommandListener(chorusForm));

            //playersChoice.append("mono loop (Barretto)", null);
            //playersChoice.append("stereo sample (Dixieland)", null);
            //playersChoice.setSelectedIndex(0, play);
            //playersChoice.setSelectedIndex(1, playStereo);
            
            audioVirtualizerChoice.append("OFF", null);
            String [] avPresets = audioVirtualizerControl.getPresetNames();
            if (avPresets != null && avPresets.length != 0)
                for (int i = 0 ; i < avPresets.length; ++i)
                    audioVirtualizerChoice.append(avPresets[i], null);
            if (avPresets.length == 0)
                audioVirtualizerChoice.append("ON", null);

            //append(playersChoice);
            append(volumeGauge);
            append(panGauge);
            append(bassGauge);
            append(trebleGauge);
            append(equalizerButton);
            append(reverbButton);
            append(chorusButton);
            append(audioVirtualizerChoice);

            setItemStateListener(this);
            addCommand(exitCommand);
            setCommandListener(new ExitCommandListener());
        }

        public void itemStateChanged(Item item) {
            if (item == null)
                return;
           /* else if (item == playersChoice) {
                if (play != playersChoice.isSelected(0)) {
                    try {
                        if (play)
                            player.stop();
                        else
                            player.start();
                    } catch (MediaException e) {}
                    play = !play;
                }

                if (playStereo != playersChoice.isSelected(1)) {
                    try {
                        if (playStereo)
                            stereoPlayer.stop();
                        else
                            stereoPlayer.start();
                    } catch (MediaException e) {}
                    playStereo = !playStereo;
                }
            }*/
            else if (item == volumeGauge)
                volumeControl.setLevel(volumeGauge.getValue() * 100 / volumeGauge.getMaxValue());
            else if (item == panGauge)
                panControl.setPan(panGauge.getValue() * 200 / panGauge.getMaxValue() - 100);
            else if (item == bassGauge)
                equalizerControl.setBass(bassGauge.getValue() * 100 / bassGauge.getMaxValue());
            else if (item == trebleGauge)
                equalizerControl.setTreble(trebleGauge.getValue() * 100 / bassGauge.getMaxValue());
            else if (item == audioVirtualizerChoice)
                if (0 == audioVirtualizerChoice.getSelectedIndex())
                    audioVirtualizerControl.setEnabled(false);
                else {
                    if (!audioVirtualizerControl.isEnabled())
                        audioVirtualizerControl.setEnabled(true);
                    String preset = audioVirtualizerChoice.getString(audioVirtualizerChoice.getSelectedIndex());
                    if (!preset.equals("ON"))
                        audioVirtualizerControl.setPreset(preset);
                }
        }

        public void updateControls(int equalizerMode) {
            volumeGauge.setValue(volumeControl.getLevel() * volumeGauge.getMaxValue() / 100);
            panGauge.setValue((100 + panControl.getPan()) * panGauge.getMaxValue() / 200);

            if (equalizerMode == EqualizerForm.MODE_BASS_TREBLE) {
                if (get(BASS_CONTROL_NUM) != bassGauge) {
                    insert(BASS_CONTROL_NUM, bassGauge);
                    insert(BASS_CONTROL_NUM + 1, trebleGauge);
                }
                bassGauge  .setValue(equalizerControl.getBass  () *   bassGauge.getMaxValue() / 100);
                trebleGauge.setValue(equalizerControl.getTreble() * trebleGauge.getMaxValue() / 100);
            } else {
                if (get(BASS_CONTROL_NUM) == bassGauge) {
                    delete(BASS_CONTROL_NUM + 1);
                    delete(BASS_CONTROL_NUM);
                }
            }
        }
    }

    
    EqualizerForm equalizerForm;
    ReverbForm reverbForm;
    ChorusForm chorusForm;
    MainForm mainForm;

    // } UI stuff

    
    // Media stuff

    boolean play = true;
    //boolean playStereo = false;

    Player player;
    //Player stereoPlayer;
    VolumeControl volumeControl;
    PanControl panControl;
    EqualizerControl equalizerControl;
    ReverbControl reverbControl;
    ReverbSourceControl reverbSourceControl;
    ChorusControl chorusControl;
    AudioVirtualizerControl audioVirtualizerControl;

    // MIDlet implementation
    
    public MusicEffects() {
        try {
            String [] s = Manager.getSupportedContentTypes(null);
            System.out.println("Supported audio types:");
            for (int i = 0; i < s.length; i++)
                if (s[i].startsWith("audio"))
                    System.out.println("  " + s[i]);

            System.out.println("Supported sample rates: " + System.getProperty("audio.samplerates"));

            System.out.println("Creating WAV player...");
            player = Manager.createPlayer(getClass().getResourceAsStream("music.wav"), "audio/x-wav");
            player.setLoopCount(-1);

            //System.out.println("Creating WAV stereo player...");
            //stereoPlayer = Manager.createPlayer(getClass().getResourceAsStream("stereomusic.wav"), "audio/x-wav");
            //stereoPlayer.setLoopCount(-1);

            EffectModule effectModule = GlobalManager.createEffectModule();
            effectModule.addPlayer(player);
            //effectModule.addPlayer(stereoPlayer);

            player.realize();
            //stereoPlayer.realize();

            System.out.println("GlobalManager controls:");
            printArray(GlobalManager.getControls());

            System.out.println("Player controls:");
            printArray(player.getControls());

            System.out.println("EffectModule controls:");
            printArray(effectModule.getControls());

            System.out.println("Creating audio controls...");
            volumeControl = (VolumeControl)GlobalManager.getControl("javax.microedition.media.control.VolumeControl");

            panControl = (PanControl)effectModule.getControl("javax.microedition.amms.control.PanControl");

            equalizerControl = (EqualizerControl)effectModule.getControl("javax.microedition.amms.control.audioeffect.EqualizerControl");
            equalizerControl.setEnabled(true);

            //System.out.println("Creating reverb control...");
            reverbControl = (ReverbControl)GlobalManager.getControl("javax.microedition.amms.control.audioeffect.ReverbControl");
            
            //System.out.println("Creating reverb source control...");
            reverbSourceControl = (ReverbSourceControl)effectModule.getControl("javax.microedition.amms.control.audioeffect.ReverbSourceControl");

            chorusControl = (ChorusControl)effectModule.getControl("javax.microedition.amms.control.audioeffect.ChorusControl");

            audioVirtualizerControl = (AudioVirtualizerControl)GlobalManager.getControl("javax.microedition.amms.control.audioeffect.AudioVirtualizerControl");
            
            System.out.println("Creating equalizerForm...");
            equalizerForm = new EqualizerForm();
            System.out.println("Creating reverbForm...");
            reverbForm = new ReverbForm();
            System.out.println("Creating chorusForm...");
            chorusForm = new ChorusForm();
            System.out.println("Creating mainForm...");
            mainForm = new MainForm();            
            mainForm.updateControls(EqualizerForm.MODE_BASS_TREBLE);
            System.out.println("Init done!");

        } catch (Exception e)
        {
            e.printStackTrace();
            System.out.println(e);
        }
    }
    
    public void startApp() {
        try {
            Display.getDisplay(this).setCurrent(mainForm);
            if (play)
                player.start();
            //if (playStereo)
            //    stereoPlayer.start();
        } catch (MediaException e) {}
    }

    public void pauseApp() {
        System.out.println("About to pauseApp...");
        try {
            player.stop();
            //stereoPlayer.stop();
        } catch (MediaException e) {}
    }

    public void destroyApp(boolean unconditional) {
        player.close();
        //stereoPlayer.close();
    }

    protected final static void printArray(Object [] s) {
        if (s == null || s.length == 0)
            System.out.println("  (empty)");
        for (int i = 0; i < s.length; ++i)
            System.out.println("  " + s[i]);
   }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -