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

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

?? spectrumtimeanalyzer.java

?? mp3播放功能
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
     */
    private void drawVUMeter(Graphics pGrp, float[] pLeft, float[] pRight, float pFrrh)
    {
        if (displayMode == DISPLAY_MODE_OFF) return;
        float wLeft = 0.0f;
        float wRight = 0.0f;
        float wSadfrr = (vuDecay * pFrrh);
        for (int a = 0; a < pLeft.length; a++)
        {
            wLeft += Math.abs(pLeft[a]);
            wRight += Math.abs(pRight[a]);
        }
        wLeft = ((wLeft * 2.0f) / (float) pLeft.length);
        wRight = ((wRight * 2.0f) / (float) pRight.length);
        if (wLeft > 1.0f)
        {
            wLeft = 1.0f;
        }
        if (wRight > 1.0f)
        {
            wRight = 1.0f;
        }
        //      vuAverage += ( ( wLeft + wRight ) / 2.0f );
        //      vuSamples++;
        //
        //      if ( vuSamples > 128 ) {
        //          vuSamples /= 2.0f;
        //          vuAverage /= 2.0f;
        //      }
        if (wLeft >= (oldLeft - wSadfrr))
        {
            oldLeft = wLeft;
        }
        else
        {
            oldLeft -= wSadfrr;
            if (oldLeft < 0)
            {
                oldLeft = 0;
            }
        }
        if (wRight >= (oldRight - wSadfrr))
        {
            oldRight = wRight;
        }
        else
        {
            oldRight -= wSadfrr;
            if (oldRight < 0)
            {
                oldRight = 0;
            }
        }
        int wHeight = (height >> 1) - 24;
        drawVolumeMeterBar(pGrp, 16, 16, (int) (oldLeft * (float) (width - 32)), wHeight);
        //      drawVolumeMeterBar( pGrp, 16, wHeight + 22, (int)( ( vuAverage / vuSamples ) * (float)( width - 32 ) ), 4 );
        drawVolumeMeterBar(pGrp, 16, wHeight + 32, (int) (oldRight * (float) (width - 32)), wHeight);
        //      pGrp.fillRect( 16, 16, (int)( oldLeft  * (float)( width - 32 ) ), wHeight );
        //      pGrp.fillRect( 16, 64, (int)( oldRight * (float)( width - 32 ) ), wHeight );
    }

    /**
     * Method to draw Spectrum Analyser Bar.
     * 
     * @param pGraphics
     * @param pX
     * @param pY
     * @param pWidth
     * @param pHeight
     * @param band
     */
    private void drawSpectrumAnalyserBar(Graphics pGraphics, int pX, int pY, int pWidth, int pHeight, int band)
    {
        float c = 0;
        for (int a = pY; a >= pY - pHeight; a -= barOffset)
        {
            c += saColorScale;
            if (c < spectrumAnalyserColors.length)
            {
                pGraphics.setColor(spectrumAnalyserColors[(int) c]);
            }
            pGraphics.fillRect(pX, a, pWidth, 1);
        }
        if ((peakColor != null) && (peaksEnabled == true))
        {
            pGraphics.setColor(peakColor);
            if (pHeight > peaks[band])
            {
                peaks[band] = pHeight;
                peaksDelay[band] = peakDelay;
            }
            else
            {
                peaksDelay[band]--;
                if (peaksDelay[band] < 0) peaks[band]--;
                if (peaks[band] < 0) peaks[band] = 0;
            }
            pGraphics.fillRect(pX, pY - peaks[band], pWidth, 1);
        }
    }

    /**
     * Method to draw Volume Meter Bar.
     * 
     * @param pGraphics
     * @param pX
     * @param pY
     * @param pWidth
     * @param pHeight
     */
    private void drawVolumeMeterBar(Graphics pGraphics, int pX, int pY, int pWidth, int pHeight)
    {
        float c = 0;
        for (int a = pX; a <= pX + pWidth; a += 2)
        {
            c += vuColorScale;
            if (c < 256.0f)
            {
                pGraphics.setColor(spectrumAnalyserColors[(int) c]);
            }
            pGraphics.fillRect(a, pY, 1, pHeight);
        }
    }

    /**
     * 
     * @return an Image
     */
    private synchronized Image getDoubleBuffer()
    {
        if (bi == null || (bi.getWidth(null) != getSize().width || bi.getHeight(null) != getSize().height))
        {
            width = getSize().width;
            height = getSize().height;
            height_2 = height >> 1;
            computeColorScale();
            bi = getGraphicsConfiguration().createCompatibleVolatileImage(width, height);
        }
        return bi;
    }

    /**
     * Get default Spectrum Analyzer Colors.
     * 
     * @return Returns default Spectrum Analyzer Colors
     */
    public static Color[] getDefaultSpectrumAnalyserColors()
    {
        Color[] wColors = new Color[256];
        for (int a = 0; a < 128; a++)
        {
            wColors[a] = new Color(0, (a >> 1) + 192, 0);
        }
        for (int a = 0; a < 64; a++)
        {
            wColors[a + 128] = new Color(a << 2, 255, 0);
        }
        for (int a = 0; a < 64; a++)
        {
            wColors[a + 192] = new Color(255, 255 - (a << 2), 0);
        }
        return wColors;
    }

    /**
     * Get the current display mode.
     * 
     * @return Returns the current display mode, DISPLAY_MODE_SCOPE or DISPLAY_MODE_SPECTRUM_ANALYSER.
     */
    public int getDisplayMode()
    {
        return displayMode;
    }

    /**
     * Get the current number of bands displayed by the Spectrum Analyzer.
     * 
     * @return Returns the current number of bands displayed by the spectrum analyser.
     */
    public int getSpectrumAnalyserBandCount()
    {
        return saBands;
    }

    /**
     * Get the decay rate of the Spectrum Analyzer's bands.
     * 
     * @return Returns the decay rate of the spectrum analyser's bands.
     */
    public float getSpectrumAnalyserDecay()
    {
        return saDecay;
    }

    /**
     * Get the color the scope is rendered in.
     * 
     * @return Returns the color the scope is rendered in.
     */
    public Color getScopeColor()
    {
        return scopeColor;
    }

    /**
     * Get the color scale used to render the Spectrum Analyzer bars.
     * @return Returns the color scale used to render the spectrum analyser bars.
     */
    public Color[] getSpectrumAnalyserColors()
    {
        return spectrumAnalyserColors;
    }

    /**
     * Method is used to initialize the Spectrum Time Analyzer's state
     *
     */
    private void initialize()
    {
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        prepareDisplayToggleListener();
        setSpectrumAnalyserBandCount(DEFAULT_SPECTRUM_ANALYSER_BAND_COUNT);
        setSpectrumAnalyserFFTSampleSize(DEFAULT_SPECTRUM_ANALYSER_FFT_SAMPLE_SIZE);
    }

    /**
     * 
     * @return Returns 'true' if "Frames Per Second" are being calculated and displayed.
     */
    public boolean isShowingFPS()
    {
        return showFPS;
    }

    /**
     * Paint the Component.When dspStarted is true,draw the peaks
     */
    public void paintComponent(Graphics pGraphics)
    {
        if (displayMode == DISPLAY_MODE_OFF) return;
        if (dspStarted)
        {
            pGraphics.drawImage(getDoubleBuffer(), 0, 0, null);    
        }
        else
        {
            super.paintComponent(pGraphics);
        }
    }

    /**
     * Set Prepare Toggle Listener for displaying peaks 
     *
     */
    private void prepareDisplayToggleListener()
    {
        setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        addMouseListener(new MouseAdapter()
        {
            public void mouseClicked(MouseEvent pEvent)
            {
                if (pEvent.getButton() == MouseEvent.BUTTON1)
                {
                    if (displayMode + 1 > 1)
                    {
                        displayMode = 0;
                    }
                    else
                    {
                        displayMode++;
                    }
                }
            }
        });
    }

    /**
     * @see kj.dsp.KJDigitalSignalProcessor#process(float[], float[], float)
     */
    public synchronized void process(float[] pLeft, float[] pRight, float pFrameRateRatioHint)
    {
        if (displayMode == DISPLAY_MODE_OFF) return;
        Graphics wGrp = getDoubleBuffer().getGraphics();
        wGrp.setColor(getBackground());
        wGrp.fillRect(0, 0, getSize().width, getSize().height);
        switch (displayMode)
        {
            case DISPLAY_MODE_SCOPE:
                drawScope(wGrp, stereoMerge(pLeft, pRight));
                break;
            case DISPLAY_MODE_SPECTRUM_ANALYSER:
                drawSpectrumAnalyser(wGrp, stereoMerge(pLeft, pRight), pFrameRateRatioHint);
                break;
            case DISPLAY_MODE_OFF:
                drawVUMeter(wGrp, pLeft, pRight, pFrameRateRatioHint);
                break;
        }
        // -- Show FPS if necessary.
        if (showFPS)
        {
            // -- Calculate FPS.
            if (System.currentTimeMillis() >= lfu + 1000)
            {
                lfu = System.currentTimeMillis();
                fps = fc;
                fc = 0;
            }
            fc++;
            wGrp.setColor(Color.yellow);
            wGrp.drawString("FPS: " + fps + " (FRRH: " + pFrameRateRatioHint + ")", 0, height - 1);
        }
        if (getGraphics() != null) getGraphics().drawImage(getDoubleBuffer(), 0, 0, null);
        //      repaint();
        //      try {
        //          EventQueue.invokeLater( new AWTPaintSynchronizer() );
        //      } catch ( Exception pEx ) {
        //          // -- Ignore exception.
        //          pEx.printStackTrace();
        //      }
    }

    /**
     * Sets the current display mode.
     *
     * @param pMode Must be either DISPLAY_MODE_SCOPE or DISPLAY_MODE_SPECTRUM_ANALYSER.
     */
    public synchronized void setDisplayMode(int pMode)
    {
        displayMode = pMode;
    }

    /**
     * Sets the color of the scope.
     *
     * @param pColor
     */
    public synchronized void setScopeColor(Color pColor)
    {
        scopeColor = pColor;
    }

    /**
     * When 'true' is passed as a parameter, will overlay the "Frames Per Seconds"
     * achieved by the component.
     *
     * @param pState
     */
    public synchronized void setShowFPS(boolean pState)
    {
        showFPS = pState;
    }

    /**
     * Sets the numbers of bands rendered by the spectrum analyser.
     *
     * @param pCount Cannot be more than half the "FFT sample size".
     */
    public synchronized void setSpectrumAnalyserBandCount(int pCount)
    {
        saBands = pCount;
        peaks = new int[saBands];
        peaksDelay = new int[saBands];
        computeSAMultiplier();
    }

    /**
     * Sets the spectrum analyser band decay rate.
     *
     * @param pDecay Must be a number between 0.0 and 1.0 exclusive.
     */
    public synchronized void setSpectrumAnalyserDecay(float pDecay)
    {
        if ((pDecay >= MIN_SPECTRUM_ANALYSER_DECAY) && (pDecay <= MAX_SPECTRUM_ANALYSER_DECAY))
        {
            saDecay = pDecay;
        }
        else saDecay = DEFAULT_SPECTRUM_ANALYSER_DECAY;
    }

    /**
     * Sets the spectrum analyser color scale.
     *
     * @param pColors Any amount of colors may be used. Must not be null.
     */
    public synchronized void setSpectrumAnalyserColors(Color[] pColors)
    {
        spectrumAnalyserColors = pColors;
        computeColorScale();
    } 

    /**
     * Sets the FFT sample size to be just for calculating the spectrum analyser
     * values. The default is 512.
     *
     * @param pSize Cannot be more than the size of the sample provided by the DSP.
     */
    public synchronized void setSpectrumAnalyserFFTSampleSize(int pSize)
    {
        saFFTSampleSize = pSize;
        fft = new KJFFT(saFFTSampleSize);
        old_FFT = new float[saFFTSampleSize];
        computeSAMultiplier();
    }

    /**
     * As a param for drawScope
     * 
     * @param pLeft
     * @param pRight
     * @return
     */
    private float[] stereoMerge(float[] pLeft, float[] pRight)
    {
        for (int a = 0; a < pLeft.length; a++)
        {
            pLeft[a] = (pLeft[a] + pRight[a]) / 2.0f;
        }
        return pLeft;
    }

    /*public void update(Graphics pGraphics)
    {
        // -- Prevent AWT from clearing background.
        paint(pGraphics);
    }*/
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话三级 | 亚洲成av人在线观看| 蜜臀av一区二区三区| 91在线观看高清| 国产欧美一区二区三区在线老狼| 天天综合天天综合色| 欧美精品久久久久久久久老牛影院| 国产精品夫妻自拍| 91网上在线视频| 亚洲国产一区二区a毛片| 色综合色综合色综合色综合色综合 | 久久久亚洲精华液精华液精华液 | 欧美日韩激情在线| 全部av―极品视觉盛宴亚洲| 精品三级在线看| 国产电影一区二区三区| 亚洲国产精品成人综合色在线婷婷| 风间由美一区二区三区在线观看| 精品久久久久久久久久久久包黑料 | 日韩经典中文字幕一区| 日韩欧美中文一区二区| 在线观看av不卡| 久久精品国产在热久久| 国产欧美一区二区三区鸳鸯浴| av男人天堂一区| 亚洲精品ww久久久久久p站| 67194成人在线观看| 国产一区二区三区免费观看| 依依成人综合视频| 日韩一区二区精品| 91在线视频免费观看| 久久99国产精品久久99果冻传媒| 精品裸体舞一区二区三区| 91国产免费观看| 韩国在线一区二区| 午夜精品一区二区三区电影天堂 | 99久久婷婷国产综合精品| 亚洲人快播电影网| 国产精品久久久久久久久免费桃花| 日韩欧美三级在线| 91免费观看视频| 成人97人人超碰人人99| 国产一区二区三区在线观看免费视频 | 亚洲一区二区欧美日韩| 久久日韩粉嫩一区二区三区| 91在线观看下载| 99视频精品在线| 99久久久久免费精品国产 | 日韩一区二区不卡| 欧美视频三区在线播放| 99精品热视频| 99视频精品免费视频| 国产福利精品导航| 国产精品18久久久久久久久| 国产麻豆精品久久一二三| 青青草国产成人av片免费| 三级不卡在线观看| 久久99国内精品| 国产精品一卡二卡在线观看| 精品一区二区三区在线观看| 日本视频一区二区| 国产乱国产乱300精品| 成人美女在线视频| 欧美在线视频不卡| 日韩一区二区三区av| 日韩精品一区二区三区在线播放| 欧美成人福利视频| 亚洲国产精品国自产拍av| 亚洲欧美日韩精品久久久久| 中文字幕在线不卡| 日本成人在线不卡视频| 久久97超碰国产精品超碰| 国产盗摄精品一区二区三区在线| a在线欧美一区| 日韩欧美亚洲一区二区| 国产日产欧产精品推荐色| 亚洲免费观看高清完整版在线观看熊| 亚洲chinese男男1069| 国产一区二区三区在线观看免费 | 色婷婷久久久久swag精品| 日韩午夜激情av| 亚洲一二三专区| 国产电影精品久久禁18| 日韩一二三四区| 亚洲午夜激情av| 国产激情精品久久久第一区二区 | 久久精品国产99久久6| 播五月开心婷婷综合| 精品国产99国产精品| 亚洲成av人片在线观看| 99综合影院在线| 国产精品传媒入口麻豆| 九一久久久久久| 日韩欧美亚洲国产另类| 日本va欧美va精品| 色老汉av一区二区三区| 日韩美女视频19| 97国产精品videossex| 精品国产乱码久久久久久夜甘婷婷| 午夜精品爽啪视频| 色婷婷综合中文久久一本| 久久久亚洲精品一区二区三区| 日本在线不卡视频一二三区| 欧美伊人久久久久久久久影院| 久久奇米777| 成人h动漫精品一区二区| 欧美国产丝袜视频| caoporen国产精品视频| 亚洲三级电影全部在线观看高清| caoporn国产一区二区| 亚洲人亚洲人成电影网站色| 91美女片黄在线观看91美女| 1区2区3区欧美| 欧美色男人天堂| 免费成人av在线| 欧美成人午夜电影| 成人午夜在线视频| 亚洲精品少妇30p| 日韩欧美一区中文| 国产v日产∨综合v精品视频| 国产精品视频免费看| 在线精品视频一区二区三四| 亚洲一区二区在线免费观看视频| 日韩一区二区电影网| 91蜜桃婷婷狠狠久久综合9色| 国产一区二区三区免费观看| 亚洲自拍偷拍av| 国产日韩欧美综合在线| 欧美三级日本三级少妇99| 美国av一区二区| 亚洲一级二级三级在线免费观看| 久久精品在这里| 欧美日韩精品免费观看视频| 国产.欧美.日韩| 男女男精品视频| 亚洲欧美另类图片小说| 久久综合色播五月| 日韩免费福利电影在线观看| 色94色欧美sute亚洲13| jlzzjlzz国产精品久久| 黄色资源网久久资源365| 亚洲一区二区三区自拍| 久久精品视频一区二区| 欧美一区二区精品久久911| 色菇凉天天综合网| 成人午夜av电影| 国产99久久久国产精品免费看| 国内外精品视频| 国产成人免费9x9x人网站视频| 美女高潮久久久| 国产麻豆一精品一av一免费| 美女视频一区二区| 久久精品二区亚洲w码| 麻豆国产精品777777在线| 久久精品国产久精国产爱| 久草这里只有精品视频| 国产精品一区三区| 不卡的电影网站| 日本韩国视频一区二区| 欧美日韩一本到| 精品国产凹凸成av人网站| 欧美韩日一区二区三区| 亚洲资源在线观看| 视频一区二区三区在线| 麻豆精品视频在线观看视频| 国产成人在线观看| 色婷婷av一区二区三区软件| 欧美自拍偷拍一区| 欧美久久久久久久久久| 欧美成人猛片aaaaaaa| 中文字幕制服丝袜一区二区三区| 依依成人精品视频| 日韩高清在线电影| 成人高清视频免费观看| 欧美日韩成人在线| 国产欧美一区二区精品秋霞影院| 亚洲精品成人少妇| 国产成+人+日韩+欧美+亚洲| 欧美日韩的一区二区| 亚洲人成小说网站色在线 | 日本一区中文字幕| 一本久道中文字幕精品亚洲嫩| 日韩视频在线观看一区二区| 国产精品高潮久久久久无| 日韩精品亚洲专区| 欧美自拍偷拍午夜视频| 中文字幕中文在线不卡住| 国产精品白丝jk黑袜喷水| 日韩一级精品视频在线观看| 三级欧美在线一区| 欧美午夜精品久久久久久孕妇| 日韩一区在线播放| 国产不卡视频在线观看| 久久精品欧美一区二区三区麻豆| 婷婷亚洲久悠悠色悠在线播放| 在线观看www91| 亚洲精品日韩一| 欧美日本一道本在线视频| 青青国产91久久久久久| 久久亚洲捆绑美女|