类android.media.audiofx.Equalizer源码实例Demo

下面列出了怎么用android.media.audiofx.Equalizer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: YTPlayer   文件: MusicService.java
static void setDefaultEqualizerValues() {
    try {
        boolean isSet = settingPref.getBoolean("equalizer_default",false);
        if (!isSet) {
            SharedPreferences.Editor editor = settingPref.edit();
            int sessionId = player.getAudioComponent().getAudioSessionId();

            mEqualizer = new Equalizer(1000,sessionId);
            short numberFrequencyBands = mEqualizer.getNumberOfBands();
            final short lowerEqualizerBandLevel = mEqualizer.getBandLevelRange()[0];
            final short upperEqualizerBandLevel = mEqualizer.getBandLevelRange()[1];

            editor.putInt("bandLength",numberFrequencyBands);
            editor.putInt("lowerBand",lowerEqualizerBandLevel);
            editor.putInt("higherBand",upperEqualizerBandLevel);
            editor.putBoolean("equalizer_default",true);
            editor.apply();

            mEqualizer.release();
        }
    }catch (Exception ignored){}
}
 
源代码2 项目: Bop   文件: EqualizerFragment.java
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);
    mEqualizer = new Equalizer(0, audioSesionId);
    bassBoost = new BassBoost(0, audioSesionId);
    bassBoost.setEnabled(true);
    BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
    BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
    bassBoostSetting.strength = (1000 / 19);
    bassBoost.setProperties(bassBoostSetting);

    presetReverb = new PresetReverb(0, audioSesionId);
    presetReverb.setPreset(PresetReverb.PRESET_NONE);
    presetReverb.setEnabled(true);
    Settings.equalizerModel = new EqualizerModel();
    mEqualizer.setEnabled(true);
    
    unbindSystemEqualizer(audioSesionId);
}
 
源代码3 项目: music_player   文件: PlayService.java
private void initialAudioEffect(final int audioSessionId) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                loudnessEnhancer = new LoudnessEnhancer(audioSessionId);
                mBass = new BassBoost(0, audioSessionId);
                mVirtualizer = new Virtualizer(0, audioSessionId);
                mEqualizer = new Equalizer(0, audioSessionId);
                canceler = AcousticEchoCanceler.create(audioSessionId);
                control = AutomaticGainControl.create(audioSessionId);
                suppressor = NoiseSuppressor.create(audioSessionId);
                getPreference();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }).start();
}
 
源代码4 项目: Rey-MusicPlayer   文件: MusicUtils.java
public static boolean isEqualizerSupported() {
    int noOfBands = 0;
    int noOfPresents = 0;
    try {
        Equalizer equalizer = new Equalizer(0, 0);
        noOfBands = equalizer.getNumberOfBands();
        noOfPresents = equalizer.getNumberOfPresets();
        equalizer.release();
        equalizer = null;
    } catch (Exception e) {

    }

    return noOfBands > 0 && noOfPresents > 0 && !isHTC();

}
 
源代码5 项目: PainlessMusicPlayer   文件: AudioEffectsImpl.java
private void restoreEqualizer() {
    mEqualizer = new Equalizer(Integer.MAX_VALUE, mSessionId);

    synchronized (SETTINGS_LOCK) {
        final EffectsProto.EqualizerSettings proto = mEqualizerSettings;
        if (proto.curPreset != 0
                || proto.numBands != 0
                || proto.bandValues.length != 0) {
            final Equalizer.Settings settings = new Equalizer.Settings();
            settings.curPreset = (short) proto.curPreset;
            settings.numBands = (short) proto.numBands;
            settings.bandLevels = new short[proto.bandValues.length];
            for (int i = 0; i < settings.bandLevels.length; i++) {
                settings.bandLevels[i] = (short) proto.bandValues[i];
            }

            try {
                mEqualizer.setProperties(settings);
            } catch (IllegalArgumentException e) {
                Log.wtf(TAG, "Failed restoring equalizer settings", e);
            }
        }
    }

    mEqualizer.setEnabled(true);
}
 
源代码6 项目: PainlessMusicPlayer   文件: AudioEffectsImpl.java
@Override
public void saveEqualizerSettings(@NonNull final Equalizer.Settings settings) {
    synchronized (SETTINGS_LOCK) {
        final EffectsProto.EqualizerSettings proto = mEqualizerSettings;
        proto.curPreset = settings.curPreset;
        proto.numBands = settings.numBands;

        final short[] bandLevels = settings.bandLevels;
        proto.bandValues = new int[bandLevels != null ? bandLevels.length : 0];
        if (bandLevels != null) {
            for (int i = 0; i < bandLevels.length; i++) {
                proto.bandValues[i] = bandLevels[i];
            }
        }
    }

    persistEqualizerSettingsAsync();
}
 
源代码7 项目: Jockey   文件: ImmutablePreferenceStore.java
public ImmutablePreferenceStore(ReadOnlyPreferenceStore preferencesStore) {
    mShowFirstStart = preferencesStore.showFirstStart();
    mAllowLogging = preferencesStore.allowLogging();
    mUseMobileNetwork = preferencesStore.useMobileNetwork();
    mOpenNowPlayingOnNewQueue = preferencesStore.openNowPlayingOnNewQueue();
    mEnableNowPlayingGestures = preferencesStore.enableNowPlayingGestures();
    mDefaultPage = preferencesStore.getDefaultPage();
    mPrimaryColor = preferencesStore.getPrimaryColor();
    mAccentColor = preferencesStore.getAccentColor();
    mBaseColor = preferencesStore.getBaseColor();
    mIconColor = preferencesStore.getIconColor();
    mResumeOnHeadphonesConnect = preferencesStore.resumeOnHeadphonesConnect();
    mShuffled = preferencesStore.isShuffled();
    mPreviousSleepTimerDurationMillis = preferencesStore.getLastSleepTimerDuration();
    mRepeatMode = preferencesStore.getRepeatMode();
    mSlsEnabled = preferencesStore.isSlsBroadcastingEnabled();
    mEqualizerPresetId = preferencesStore.getEqualizerPresetId();
    mEqualizerEnabled = preferencesStore.getEqualizerEnabled();

    Equalizer.Settings eqSettings = preferencesStore.getEqualizerSettings();
    if (eqSettings != null) {
        mEqualizerSettings = eqSettings.toString();
    } else {
        mEqualizerSettings = null;
    }
}
 
private void workaroundGalaxyS4SetProperties(IEqualizer.Settings settings) {
    final Equalizer eq = getEqualizer();

    if (settings.curPreset != PRESET_UNDEFINED) {
        // NOTE: if curPreset has valid preset no.,
        // bandLevels values are not used.
        settings = DefaultEqualizerPresets.getPreset(settings.curPreset);
    }

    // apply
    if (settings.curPreset != PRESET_UNDEFINED) {
        try {
            eq.usePreset(settings.curPreset);
        } catch (IllegalArgumentException e) {
            // HTC devices raises IllegalArgumentException
        }
    }
    for (short band = 0; band < settings.numBands; band++) {
        eq.setBandLevel(band, settings.bandLevels[band]);
    }

    mWorkaroundCurPreset = settings.curPreset;
    System.arraycopy(settings.bandLevels, 0, mWorkaroundBandLevels, 0,
            mNumBands);
}
 
private void workaroundCyanogenModSetProperties(IEqualizer.Settings settings) {
    // apply
    if (settings.curPreset != PRESET_UNDEFINED) {
        final Equalizer eq = getEqualizer();

        eq.usePreset(settings.curPreset);
        mWorkaroundCurPreset = settings.curPreset;
        for (short band = 0; band < settings.numBands; band++) {
            mWorkaroundBandLevels[band] = eq.getBandLevel(band);
        }
    } else {
        for (short band = 0; band < settings.numBands; band++) {
            workaroundCyanogenModSetBandLevel(band, settings.bandLevels[band]);
        }

        mWorkaroundCurPreset = settings.curPreset;
        System.arraycopy(settings.bandLevels, 0, mWorkaroundBandLevels, 0, mNumBands);
    }
}
 
源代码10 项目: AndroidEqualizer   文件: EqualizerFragment.java
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Settings.isEditing = true;

    if (getArguments() != null && getArguments().containsKey(ARG_AUDIO_SESSIOIN_ID)){
        audioSesionId = getArguments().getInt(ARG_AUDIO_SESSIOIN_ID);
    }

    if (Settings.equalizerModel == null){
        Settings.equalizerModel = new EqualizerModel();
        Settings.equalizerModel.setReverbPreset(PresetReverb.PRESET_NONE);
        Settings.equalizerModel.setBassStrength((short) (1000 / 19));
    }

    mEqualizer = new Equalizer(0, audioSesionId);

    bassBoost = new BassBoost(0, audioSesionId);
    bassBoost.setEnabled(Settings.isEqualizerEnabled);
    BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
    BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
    bassBoostSetting.strength = Settings.equalizerModel.getBassStrength();
    bassBoost.setProperties(bassBoostSetting);

    presetReverb = new PresetReverb(0, audioSesionId);
    presetReverb.setPreset(Settings.equalizerModel.getReverbPreset());
    presetReverb.setEnabled(Settings.isEqualizerEnabled);

    mEqualizer.setEnabled(Settings.isEqualizerEnabled);

    if (Settings.presetPos == 0){
        for (short bandIdx = 0; bandIdx < mEqualizer.getNumberOfBands(); bandIdx++) {
            mEqualizer.setBandLevel(bandIdx, (short) Settings.seekbarpos[bandIdx]);
        }
    }
    else {
        mEqualizer.usePreset((short) Settings.presetPos);
    }
}
 
源代码11 项目: AndroidEqualizer   文件: DialogEqualizerFragment.java
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Settings.isEditing = true;

    if (getArguments() != null && getArguments().containsKey(ARG_AUDIO_SESSIOIN_ID)) {
        audioSesionId = getArguments().getInt(ARG_AUDIO_SESSIOIN_ID);
    }

    if (Settings.equalizerModel == null) {
        Settings.equalizerModel = new EqualizerModel();
        Settings.equalizerModel.setReverbPreset(PresetReverb.PRESET_NONE);
        Settings.equalizerModel.setBassStrength((short) (1000 / 19));
    }

    mEqualizer = new Equalizer(0, audioSesionId);

    bassBoost = new BassBoost(0, audioSesionId);
    bassBoost.setEnabled(true);
    BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
    BassBoost.Settings bassBoostSetting     = new BassBoost.Settings(bassBoostSettingTemp.toString());
    bassBoostSetting.strength = Settings.equalizerModel.getBassStrength();
    bassBoost.setProperties(bassBoostSetting);

    presetReverb = new PresetReverb(0, audioSesionId);
    presetReverb.setPreset(Settings.equalizerModel.getReverbPreset());
    presetReverb.setEnabled(true);

    mEqualizer.setEnabled(true);

    if (Settings.presetPos == 0) {
        for (short bandIdx = 0; bandIdx < mEqualizer.getNumberOfBands(); bandIdx++) {
            mEqualizer.setBandLevel(bandIdx, (short) Settings.seekbarpos[bandIdx]);
        }
    } else {
        mEqualizer.usePreset((short) Settings.presetPos);
    }
}
 
源代码12 项目: Rey-MusicPlayer   文件: EqualizerHelper.java
public EqualizerHelper(int audioSessionId1, boolean equalizerEnabled) throws RuntimeException {

        mEqualizer = new Equalizer(0, audioSessionId1);
        mEqualizer.setEnabled(equalizerEnabled);

        mVirtualizer = new Virtualizer(0, audioSessionId1);
        mVirtualizer.setEnabled(equalizerEnabled);

        mBassBoost = new BassBoost(0, audioSessionId1);
        mBassBoost.setEnabled(equalizerEnabled);

        mPresetReverb = new PresetReverb(0, audioSessionId1);
        mPresetReverb.setEnabled(equalizerEnabled);
    }
 
源代码13 项目: Audinaut   文件: EqualizerController.java
public Equalizer getEqualizer() {
    if (released) {
        released = false;
        try {
            init();
        } catch (Throwable x) {
            equalizer = null;
            released = true;
            Log.w(TAG, "Failed to create equalizer.", x);
        }
    }
    return equalizer;
}
 
源代码14 项目: Audinaut   文件: EqualizerController.java
public void apply(Equalizer equalizer, BassBoost boost, LoudnessEnhancerController loudnessController) {
    for (short i = 0; i < bandLevels.length; i++) {
        equalizer.setBandLevel(i, bandLevels[i]);
    }
    equalizer.setEnabled(enabled);
    if (bass != 0) {
        boost.setEnabled(true);
        boost.setStrength(bass);
    }
    if (loudness != 0) {
        loudnessController.enable();
        loudnessController.setGain(loudness);
    }
}
 
源代码15 项目: mobile-manager-tool   文件: MusicUtils.java
/**
 * @param media player from apollo service.
 */
public static void initEqualizer(MediaPlayer player, Context context){
	releaseEqualizer();
	int id = player.getAudioSessionId();
	mEqualizer = new Equalizer(1,id);
	mBoost = new BassBoost(1, id);
	updateEqualizerSettings(context);
}
 
源代码16 项目: PainlessMusicPlayer   文件: EqualizerView.java
private List<Item> buildItems(@NonNull final Equalizer equalizer) {
    final List<Item> items = new ArrayList<>(equalizer.getNumberOfBands());

    final short[] bandLevelRange = equalizer.getBandLevelRange();
    final short minEQLevel = bandLevelRange[0];
    final short maxEQLevel = bandLevelRange[1];

    eqLevelRange = maxEQLevel - minEQLevel;
    minEqLevel = minEQLevel;
    final Resources res = getResources();
    for (short i = 0; i < equalizer.getNumberOfBands(); i++) {
        final Item item = new Item();
        final int herz = equalizer.getCenterFreq(i) / 1000;
        final String herzText;
        if (herz > 1000) {
            final NumberFormat formatter = NumberFormat.getInstance(Locale.US);
            formatter.setMaximumFractionDigits(1);
            formatter.setMinimumFractionDigits(0);
            formatter.setRoundingMode(RoundingMode.HALF_UP);
            herzText = res.getString(R.string.s_kHz, formatter.format((float) herz / 1000f));
        } else {
            herzText = res.getString(R.string.d_Hz, herz);
        }
        item.title = herzText;
        item.seekBarValue = equalizer.getBandLevel(i) - minEQLevel;
        items.add(item);
    }
    return items;
}
 
源代码17 项目: Noyze   文件: EqualizerVolumePanel.java
private void updateEqualizerState(Equalizer eq) {
    if (null == eq) return;
    preset = eq.getCurrentPreset();
    for (short band = 0; band < levels.length; ++band) {
        levels[band] = eq.getBandLevel(band);
    }
}
 
源代码18 项目: Noyze   文件: EqualizerVolumePanel.java
private void release(AudioEffect effect) {
    if (null != effect) {
        effect.setControlStatusListener(null);
        effect.setEnableStatusListener(null);
        if (effect instanceof Equalizer) {
            ((Equalizer) effect).setParameterListener(null);
        } else if (effect instanceof BassBoost) {
            ((BassBoost) effect).setParameterListener(null);
        } else if (effect instanceof Virtualizer) {
            ((Virtualizer) effect).setParameterListener(null);
        }
        effect.release();
    }
}
 
源代码19 项目: Jockey   文件: ImmutablePreferenceStore.java
@Override
public Equalizer.Settings getEqualizerSettings() {
    if (mEqualizerSettings != null) {
        try {
            return new Equalizer.Settings(mEqualizerSettings);
        } catch (IllegalArgumentException exception) {
            Timber.e(exception, "getEqualizerSettings: failed to parse equalizer settings");
        }
    }
    return null;
}
 
源代码20 项目: Jockey   文件: SharedPreferenceStore.java
@Override
public Equalizer.Settings getEqualizerSettings() {
    if (contains(R.string.pref_key_eq_settings)) {
        try {
            return new Equalizer.Settings(getString(R.string.pref_key_eq_settings, null));
        } catch (IllegalArgumentException exception) {
            Timber.e(exception, "getEqualizerSettings: failed to parse equalizer settings");
        }
    }
    return null;
}
 
源代码21 项目: Jockey   文件: JockeyPreferencesCompat.java
private static void updateFromJockey1_2(Context context, SharedPreferences prefs) {
    boolean showFirstStart = prefs.getBoolean("prefShowFirstStart", true);
    boolean allowLogging = prefs.getBoolean("prefAllowLogging", false);
    String firstPage = prefs.getString("prefDefaultPage", Integer.toString(SONGS));
    String primaryColor = prefs.getString("prefColorPrimary", Integer.toString(CYAN));
    String baseTheme = prefs.getString("prefBaseTheme", Integer.toString(LIGHT));
    boolean useMobileData = prefs.getBoolean("prefUseMobileData", true);
    boolean openNowPlaying = prefs.getBoolean("prefSwitchToNowPlaying", true);
    boolean enableGestures = prefs.getBoolean("prefEnableNowPlayingGestures", true);
    int eqPreset = prefs.getInt("equalizerPresetId", -1);
    boolean eqEnabled = prefs.getBoolean("prefUseEqualizer", false);
    String eqSettings = prefs.getString("prefEqualizerSettings", null);
    int repeat = prefs.getInt("prefRepeat", 0);
    boolean shuffle = prefs.getBoolean("prefShuffle", false);

    prefs.edit().clear().apply();
    PreferenceStore preferenceStore = new SharedPreferenceStore(context);

    preferenceStore.setShowFirstStart(showFirstStart);
    preferenceStore.setAllowLogging(allowLogging);
    preferenceStore.setDefaultPage(convertStartPage1_2(firstPage));
    preferenceStore.setPrimaryColor(convertPrimaryColor1_2(primaryColor));
    preferenceStore.setBaseColor(convertBaseTheme1_2(baseTheme));
    preferenceStore.setUseMobileNetwork(useMobileData);
    preferenceStore.setOpenNowPlayingOnNewQueue(openNowPlaying);
    preferenceStore.setEnableNowPlayingGestures(enableGestures);
    preferenceStore.setEqualizerPresetId(eqPreset);
    preferenceStore.setEqualizerEnabled(eqEnabled);

    try {
        if (eqSettings != null) {
            preferenceStore.setEqualizerSettings(new Equalizer.Settings(eqSettings));
        }
    } catch (IllegalArgumentException ignored) {}

    preferenceStore.setRepeatMode(repeat);
    preferenceStore.setShuffle(shuffle);
}
 
源代码22 项目: Jockey   文件: RemoteEqualizer.java
private static Band[] getEqualizerBands(Equalizer equalizer) {
    Band[] bands = new Band[equalizer.getNumberOfBands()];

    for (short i = 0; i < bands.length; i++) {
        int[] range = equalizer.getBandFreqRange(i);
        int centerFrequency = equalizer.getCenterFreq(i);
        int lowFrequency = range[0];
        int highFrequency = range[1];

        bands[i] = new Band(lowFrequency, highFrequency, centerFrequency);
    }

    return bands;
}
 
源代码23 项目: Jockey   文件: RemoteEqualizer.java
private static Preset[] getEqualizerPresets(Equalizer equalizer) {
    Preset[] presets = new Preset[equalizer.getNumberOfPresets()];

    for (short i = 0; i < presets.length; i++) {
        presets[i] = new Preset(equalizer.getPresetName(i));
    }

    return presets;
}
 
源代码24 项目: Jockey   文件: RemoteEqualizer.java
public RemoteEqualizer(Band[] bands, Preset[] presets, Equalizer.Settings settings,
                       short[] bandLevelRange) {
    mBands = bands;
    mPresets = presets;

    mMinBandLevel = bandLevelRange[0];
    mMaxBandLevel = bandLevelRange[1];

    setProperties(settings);
}
 
源代码25 项目: Jockey   文件: RemoteEqualizer.java
public Equalizer.Settings getProperties() {
    Equalizer.Settings settings = new Equalizer.Settings();

    settings.bandLevels = intArrayToShortArray(mBandLevels);
    settings.curPreset = (short) mCurPreset;
    settings.numBands = (short) getNumberOfBands();

    return settings;
}
 
源代码26 项目: Jockey   文件: EqualizedExoPlayer.java
public void setEqualizerSettings(boolean enabled, Equalizer.Settings settings) {
    boolean invalidate = mEqualizerEnabled != enabled || mEqualizerEnabled;
    boolean wasSystem = isUsingSystemEqualizer();

    mEqualizerEnabled = enabled;
    mEqualizerSettings = settings;

    if (invalidate) {
        updateEqualizerPrefs(enabled, wasSystem);
    }
}
 
源代码27 项目: Jockey   文件: EqualizerFragment.java
private RemoteEqualizer generateEqualizerConfig() {
    // Obtain an instance of the system equalizer to discover available configuration options
    // for an equalizer including bands and presets. This equalizer is not used to control
    // audio settings and is released before this method ends
    Equalizer systemEqualizer = new Equalizer(0, 1);

    RemoteEqualizer eq = new RemoteEqualizer(systemEqualizer);
    Equalizer.Settings settings = mPrefStore.getEqualizerSettings();
    if (settings != null) {
        eq.setProperties(mPrefStore.getEqualizerSettings());
    }

    systemEqualizer.release();
    return eq;
}
 
源代码28 项目: Popeens-DSub   文件: EqualizerController.java
private void init() {
	equalizer = new Equalizer(0, audioSessionId);
	bass = new BassBoost(0, audioSessionId);
	if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
		loudnessAvailable = true;
		loudnessEnhancerController = new LoudnessEnhancerController(context, audioSessionId);
	}
}
 
源代码29 项目: Popeens-DSub   文件: EqualizerController.java
public Equalizer getEqualizer() {
	if(released) {
		released = false;
		try {
			init();
		} catch (Throwable x) {
			equalizer = null;
			released = true;
			Log.w(TAG, "Failed to create equalizer.", x);
		}
	}
	return equalizer;
}
 
源代码30 项目: Popeens-DSub   文件: EqualizerController.java
public void apply(Equalizer equalizer, BassBoost boost, LoudnessEnhancerController loudnessController) {
	for (short i = 0; i < bandLevels.length; i++) {
		equalizer.setBandLevel(i, bandLevels[i]);
	}
	equalizer.setEnabled(enabled);
	if(bass != 0) {
		boost.setEnabled(true);
		boost.setStrength(bass);
	}
	if(loudness != 0) {
		loudnessController.enable();
		loudnessController.setGain(loudness);
	}
}
 
 类所在包
 同包方法