Java 类android.media.audiofx.Visualizer 实例源码

项目:ultrasonic    文件:VisualizerController.java   
public VisualizerController(MediaPlayer mediaPlayer)
{
    try
    {
        if (mediaPlayer == null)
        {
            return;
        }

        audioSessionId = mediaPlayer.getAudioSessionId();
        visualizer = new Visualizer(audioSessionId);
    }
    catch (Throwable x)
    {
        Log.w(TAG, "Failed to create visualizer.", x);
    }

    if (visualizer != null)
    {
        int[] captureSizeRange = Visualizer.getCaptureSizeRange();
        int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
        captureSize = Math.min(captureSize, captureSizeRange[1]);
        visualizer.setCaptureSize(captureSize);
    }
}
项目:ultrasonic    文件:VisualizerController.java   
public Visualizer getVisualizer()
{
    if (released)
    {
        released = false;

        try
        {
            visualizer = new Visualizer(audioSessionId);
        }
        catch (Throwable x)
        {
            visualizer = null;
            Log.w(TAG, "Failed to create visualizer.", x);
        }
    }

    return visualizer;
}
项目:MusicX-music-player    文件:VisualizerShadowChanger.java   
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
    int dataSize = fft.length / 2 - 1;
    for (int i = 0; i < SOUND_INDEX_COEFFICIENTS.length; i++) {
        int index = (int) (SOUND_INDEX_COEFFICIENTS[i] * dataSize);
        byte real = fft[2 * index];
        byte imag = fft[2 * index + 1];
        long magnitudeSquare = real * real + imag * imag;
        magnitudeSquare = (long) Math.sqrt(magnitudeSquare);
        float dbs = magnitudeToDb(magnitudeSquare);
        float dbPercentage = dbs / MAX_DB_VALUE;
        if (dbPercentage > 1.0f) {
            dbPercentage = 1.0f;
        }
        mDbsPercentagesConcrete[i] = mDbsPercentagesConcrete[i] * FILTRATION_ALPHA + dbPercentage * FILTRATION_BETA;
    }

    changeShadow(mDbsPercentagesConcrete[0], mDbsPercentagesConcrete[1], mDbsPercentagesConcrete[2]);

}
项目:PlayWidget    文件:VisualizerShadowChanger.java   
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
    int dataSize = fft.length / 2 - 1;
    for (int i = 0; i < SOUND_INDEX_COEFFICIENTS.length; i++) {
        int index = (int) (SOUND_INDEX_COEFFICIENTS[i] * dataSize);
        byte real = fft[2 * index];
        byte imag = fft[2 * index + 1];
        long magnitudeSquare = real * real + imag * imag;
        magnitudeSquare = (long) Math.sqrt(magnitudeSquare);
        float dbs = magnitudeToDb(magnitudeSquare);
        float dbPercentage = dbs / MAX_DB_VALUE;
        if (dbPercentage > 1.0f) {
            dbPercentage = 1.0f;
        }
        mDbsPercentagesConcrete[i] = mDbsPercentagesConcrete[i] * FILTRATION_ALPHA + dbPercentage * FILTRATION_BETA;
    }

    changeShadow(mDbsPercentagesConcrete[0], mDbsPercentagesConcrete[1], mDbsPercentagesConcrete[2]);

}
项目:xposed_lockscreen_visualizer    文件:VisualizerView.java   
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft,
                             int samplingRate) {
    for (int i = 0; i < 32; i++) {
        mValueAnimators[i].cancel();
        rfk = fft[i * 2 + 2];
        ifk = fft[i * 2 + 3];
        magnitude = rfk * rfk + ifk * ifk;
        dbValue = magnitude > 0 ? (int) (10 * Math.log10(magnitude)) : 0;

        mValueAnimators[i].setFloatValues(mFFTPoints[i * 4 + 1],
                mFFTPoints[3] - (dbValue * 16f));
        //mValueAnimators[i]
        // .setInterpolator(new AccelerateDecelerateInterpolator());
        mValueAnimators[i].start();
    }
}
项目:soulissapp    文件:VisualizerView.java   
private void init() {
    mBytes = null;
    mFFTBytes = null;

    //mFlashPaint.setColor(Color.argb(122, 255, 255, 255));
    mFadePaint.setColor(Color.argb(100, 255, 255, 255)); // Adjust alpha to

    mRenderers = new HashSet<>();


    mVisualizer = new Visualizer(0);
    Log.w(Constants.TAG, "SetCapture Size (FFT MINRANGE):" + mVisualizer.getCaptureSize());
    recordingSampler = new RecordingSampler();

    // transPainter = new Paint();
    // transPainter.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
}
项目:C85-Android-4.4-Sample    文件:MainActivity.java   
@Override
protected void onDestroy() {
    super.onDestroy();
    // disable loudness
    if (mLoudness != null) {
        mLoudness.setEnabled(false);
        mLoudness.release();
        mLoudness = null;
    }
    // disable visualizer
    if (mVisualizer != null) {
        mVisualizer.setEnabled(false);
        mVisualizer.setMeasurementMode(Visualizer.MEASUREMENT_MODE_NONE);
        mVisualizer.release();
    }
    // release mediaplayer
    if (mMediaPlayer != null) {
        mMediaPlayer.release();
    }
}
项目:musicviz    文件:PlayerAudioSource.java   
/**
 * Starts capturing and retrieving audio data, forwarding it to the provided
 * {@link RawDataListener}, or does nothing if recording is already started.
 * Returns immediately once retrieval is set up.
 *
 * @throws IllegalStateException if audio capture couldn't be enabled
 */
@Override
public void start(RawDataListener out) {
    if (audioSource.getEnabled()) {
        return;
    }
    int largestSize = getOutputSize();
    Log.d(TAG, "Using captureSize " + largestSize);
    if (audioSource.setCaptureSize(largestSize) != Visualizer.SUCCESS) {
        throw new IllegalStateException("Bad capture size: " + largestSize);
    }
    int maxMilliHz = getDataRefreshRateHz();
    Log.d(TAG, "Starting viz with hz=" + maxMilliHz);
    audioSource.setDataCaptureListener(new PassthruListener(out), maxMilliHz * 1000, false, true);
    audioSource.setEnabled(true);
}
项目:musicviz    文件:PlayerAudioSource.java   
/**
 * Returns the largest available data width for system audio capture, suitable for passing to
 * {@link Visualizer#setCaptureSize(int)}.
 */
public int getOutputSize() {
    int[] range = Visualizer.getCaptureSizeRange();
    if (range.length != 2) {
        throw new IllegalStateException(
            "Expected 2 elements in capture size range, got " + range.length);
    }
    if (range[0] > range[1]) {
        Log.w(TAG, "Capture size range is backwards: [" + range[0] + ", " + range[1] + "]");
        int tmp = range[0];
        range[0] = range[1];
        range[1] = tmp;
    }
    Log.v(TAG, "Capture size range: [" + range[0] + ", " + range[1] + "]");
    return findLargestBaseTwoInInclusiveRange(range[0], range[1]);
}
项目:WaveInApp    文件:VisualizerWrapper.java   
public VisualizerWrapper(@NonNull Context context, int audioSessionId, @NonNull final OnFftDataCaptureListener onFftDataCaptureListener) {
       mediaPlayer = MediaPlayer.create(context, R.raw.av_workaround_1min);
    visualizer = new Visualizer(audioSessionId);
       visualizer.setEnabled(false);
    visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
       captureRate = Visualizer.getMaxCaptureRate();
       captureListener = new Visualizer.OnDataCaptureListener() {
           @Override
           public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {

           }

           @Override
           public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
               boolean allZero = Utils.allElementsAreZero(fft);
               if (lastZeroArrayTimestamp  == 0) {
                   if (allZero) {
                       lastZeroArrayTimestamp = System.currentTimeMillis();
                   }
               } else  {
                   if (!allZero) {
                       lastZeroArrayTimestamp = 0;
                   } else if (System.currentTimeMillis() - lastZeroArrayTimestamp >= WAIT_UNTIL_HACK) {
                       setEnabled(true);
                       lastZeroArrayTimestamp = 0;
                   }
               }
               onFftDataCaptureListener.onFftDataCapture(fft);
           }
       };
       visualizer.setEnabled(true);
}
项目:xposed_lockscreen_visualizer    文件:VisualizerView.java   
@Override
public void run()  {
    try {
        mVisualizer = new Visualizer(0);
        mVisualizer.setEnabled(false);
        mVisualizer.setCaptureSize(66);
        mVisualizer.setDataCaptureListener(mVisualizerListener,
                Visualizer.getMaxCaptureRate(), false, true);
        mVisualizer.setEnabled(true);
    } catch (Throwable e){
            if (areWeInsideSystemUI){
                LLog.e(e);
            } else e.printStackTrace();
    }
}
项目:Sky31Radio    文件:EqualizerView.java   
public void linkPlayer(int sessionId){
    Timber.d("linkPlayer, session id: %d", sessionId);
    visualizer = new Visualizer(sessionId);
    if(!visualizer.getEnabled()){
        visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    }
    visualizer.setDataCaptureListener(dataCaptureListener, Visualizer.getMaxCaptureRate() / 2, true, true);
    visualizer.setEnabled(true);
}
项目:madsonic-5.5    文件:VisualizerController.java   
public VisualizerController(Context context, MediaPlayer mediaPlayer) {
     try {
audioSessionId = mediaPlayer.getAudioSessionId();
         visualizer = new Visualizer(audioSessionId);
     } catch (Throwable x) {
         LOG.warn("Failed to create visualizer.", x);
     }

     if (visualizer != null) {
         int[] captureSizeRange = Visualizer.getCaptureSizeRange();
         int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
         captureSize = Math.min(captureSize, captureSizeRange[1]);
         visualizer.setCaptureSize(captureSize);
     }
 }
项目:madsonic-5.5    文件:VisualizerController.java   
public Visualizer getVisualizer() {
if(released) {
    released = false;
    try {
        visualizer = new Visualizer(audioSessionId);
    } catch (Throwable x) {
        visualizer = null;
        LOG.warn("Failed to create visualizer.", x);
    }
}

      return visualizer;
  }
项目:bitesize-kitkat    文件:SamplingSoundMeter.java   
private void updateStatus() {
    // Capture the sample
    Visualizer.MeasurementPeakRms measurementPeakRms = new Visualizer.MeasurementPeakRms();
    visualizer.getMeasurementPeakRms(measurementPeakRms);
    // Notify our updateable
    updateable.setPeakValue(measurementPeakRms.mPeak);
    updateable.setRmsValue(measurementPeakRms.mRms);
}
项目:madsonic-5.6    文件:VisualizerController.java   
public VisualizerController(Context context, MediaPlayer mediaPlayer) {
     try {
audioSessionId = mediaPlayer.getAudioSessionId();
         visualizer = new Visualizer(audioSessionId);
     } catch (Throwable x) {
         LOG.warn("Failed to create visualizer.", x);
     }

     if (visualizer != null) {
         int[] captureSizeRange = Visualizer.getCaptureSizeRange();
         int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
         captureSize = Math.min(captureSize, captureSizeRange[1]);
         visualizer.setCaptureSize(captureSize);
     }
 }
项目:madsonic-5.6    文件:VisualizerController.java   
public Visualizer getVisualizer() {
if(released) {
    released = false;
    try {
        visualizer = new Visualizer(audioSessionId);
    } catch (Throwable x) {
        visualizer = null;
        LOG.warn("Failed to create visualizer.", x);
    }
}

      return visualizer;
  }
项目:ShaderDroid    文件:ShaderDroidMain.java   
private Bitmap startMusic() {
    mMediaPlayer = MediaPlayer.create(this, R.raw.hyperfun);
    mMediaPlayer.setLooping(true);
    mAudioSession = mMediaPlayer.getAudioSessionId();
    mMediaPlayer.start();
    mVisualizer = new Visualizer(mAudioSession);
    mVisualizer.setDataCaptureListener(this, Visualizer.getMaxCaptureRate() / 2, true, true);
    mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1] / 2);
    Bitmap visualizerBitmap = Bitmap.createBitmap(Visualizer.getCaptureSizeRange()[1] / 2, 2, Bitmap.Config.RGB_565)
            .copy(Bitmap.Config.RGB_565, true);
    visualizerBitmap.eraseColor(Color.BLACK);
    mVisualizer.setScalingMode(Visualizer.SCALING_MODE_AS_PLAYED);
    mVisualizer.setEnabled(true);
    return visualizerBitmap;
}
项目:CheckMyLEDs    文件:AudioCapture.java   
private boolean captureData() {
    int status = Visualizer.ERROR;
    boolean result = true;
    try {
        if (mVisualizer != null) {
            if (mType == TYPE_PCM) {
                status = mVisualizer.getWaveForm(mRawVizData);
            } else {
                status = mVisualizer.getFft(mRawVizData);
            }
        }
    } catch (IllegalStateException e) {
        Log.e("AudioCapture", "captureData() IllegalStateException: "+this);
    } finally {
        if (status != Visualizer.SUCCESS) {
            Log.e("AudioCapture", "captureData() :  "+this+" error: "+ status);
            result = false;
        } else {
            // return idle state indication if silence lasts more than MAX_IDLE_TIME_MS
            byte nullValue = 0;
            int i;
            if (mType == TYPE_PCM) {
                nullValue = (byte)0x80;
            }
            for (i = 0; i < mRawVizData.length; i++) {
                if (mRawVizData[i] != nullValue) break;
            }
            if (i == mRawVizData.length) {
                if ((System.currentTimeMillis() - mLastValidCaptureTimeMs) >
                     MAX_IDLE_TIME_MS) {
                    result = false;
                }
            } else {
                mLastValidCaptureTimeMs = System.currentTimeMillis();
            }
        }
    }
    return result;
}
项目:madsonic-5.5    文件:VisualizerController.java   
public VisualizerController(Context context, MediaPlayer mediaPlayer) {
     try {
audioSessionId = mediaPlayer.getAudioSessionId();
         visualizer = new Visualizer(audioSessionId);
     } catch (Throwable x) {
         LOG.warn("Failed to create visualizer.", x);
     }

     if (visualizer != null) {
         int[] captureSizeRange = Visualizer.getCaptureSizeRange();
         int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
         captureSize = Math.min(captureSize, captureSizeRange[1]);
         visualizer.setCaptureSize(captureSize);
     }
 }
项目:madsonic-5.5    文件:VisualizerController.java   
public Visualizer getVisualizer() {
if(released) {
    released = false;
    try {
        visualizer = new Visualizer(audioSessionId);
    } catch (Throwable x) {
        visualizer = null;
        LOG.warn("Failed to create visualizer.", x);
    }
}

      return visualizer;
  }
项目:ultrasonic    文件:VisualizerView.java   
private static Visualizer getVizualizer()
{
    DownloadService downloadService = DownloadServiceImpl.getInstance();
    VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
    return visualizerController == null ? null : visualizerController.getVisualizer();
}
项目:android-audio-visualizer    文件:BaseVisualizer.java   
public Visualizer getVisualizer() {
    return visualizer;
}
项目:MusicX-music-player    文件:VisualizerShadowChanger.java   
private VisualizerShadowChanger(int audioSessionId) {
    mVisualizer = new Visualizer(audioSessionId);
    mVisualizer.setEnabled(false);
    mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    mVisualizer.setDataCaptureListener(this, Visualizer.getMaxCaptureRate(), false, true);
}
项目:MusicX-music-player    文件:VisualizerShadowChanger.java   
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
}
项目:PlayWidget    文件:VisualizerShadowChanger.java   
private VisualizerShadowChanger(int audioSessionId) {
    mVisualizer = new Visualizer(audioSessionId);
    mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    mVisualizer.setDataCaptureListener(this, Visualizer.getMaxCaptureRate(), false, true);
}
项目:PlayWidget    文件:VisualizerShadowChanger.java   
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
}
项目:xposed_lockscreen_visualizer    文件:VisualizerView.java   
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
                                  int samplingRate) {}
项目:Sky31Radio    文件:EqualizerView.java   
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
    updateVisualizerWave(waveform);
}
项目:Sky31Radio    文件:EqualizerView.java   
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
    updateVisualizerFFT(fft);
}
项目:madsonic-5.5    文件:VisualizerView.java   
private Visualizer getVizualiser() {
    DownloadService downloadService = DownloadServiceImpl.getInstance();
    VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
    return visualizerController == null ? null : visualizerController.getVisualizer();
}
项目:bitesize-kitkat    文件:SamplingSoundMeter.java   
public SamplingSoundMeter(SoundLevelUpdateable updateableObject) {
    updateable = updateableObject;
    visualizer = new Visualizer(0);
    visualizer.setMeasurementMode(Visualizer.MEASUREMENT_MODE_PEAK_RMS);
    handler = new Handler();
}
项目:madsonic-5.6    文件:VisualizerView.java   
private Visualizer getVizualiser() {
    DownloadService downloadService = DownloadServiceImpl.getInstance();
    VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
    return visualizerController == null ? null : visualizerController.getVisualizer();
}
项目:ShaderDroid    文件:ShaderDroidMain.java   
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
    mRenderer.setSamplingRate(samplingRate);
    mRenderer.setWaveform(waveform);
}
项目:ShaderDroid    文件:ShaderDroidMain.java   
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
    mRenderer.setSamplingRate(samplingRate);
    mRenderer.setFft(fft);
}
项目:madsonic-5.5    文件:VisualizerView.java   
private Visualizer getVizualiser() {
    DownloadService downloadService = DownloadServiceImpl.getInstance();
    VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
    return visualizerController == null ? null : visualizerController.getVisualizer();
}
项目:tunnel_player_workaround    文件:SimpleVisualizerView.java   
@Override
public void onFftDataCapture(
        Visualizer visualizer, byte[] fft, int samplingRate) {
}
项目:tunnel_player_workaround    文件:SimpleVisualizerView.java   
@Override
public void onWaveFormDataCapture(
        Visualizer visualizer, byte[] waveform, int samplingRate) {
    mWaveform = waveform;
    this.postInvalidate();
}
项目:musicviz    文件:PlayerAudioSource.java   
@Override
public void onFftDataCapture(
    Visualizer visualizer, byte[] fft, int samplingRate) {
    out.onReceive(fft);
}
项目:musicviz    文件:PlayerAudioSource.java   
@Override
public void onWaveFormDataCapture(
    Visualizer visualizer, byte[] waveform, int samplingRate) {
    throw new IllegalStateException("Waveform not supported.");
}