2016-07-28 26 views
3

Ich benutze den folgenden Code, um den Equalizer in der App zu öffnen.So verwenden Sie den nativen Equalizer in der App

Intent intent = new Intent(); 
intent.setAction("android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL"); 
if (intent.resolveActivity(getActivity().getPackageManager()) != null) 
{ 
    startActivityForResult(intent , 100); 
} 
else 
{ 
    JBUtils.getInstance().showCustomToast(getActivity() , R.string.equalizer_notfound); 
} 

Und hinzugefügt, um die Erlaubnis

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 

Nach Benutzern der Equalizer-Einstellungen ändern, wie Equalizer-Einstellungen in dem aktuell abgespielten Audio-file.We anzuwenden sind, um die Exoplayer Verwendung für die Musikdatei.

Vielen Dank im Voraus.

Antwort

-1

Betrachten Sie bitte dieses Thema (geschlossen):

https://github.com/google/ExoPlayer/issues/252

Es ist ein interessantes Beispiel über die Verwendung von Equalizer in ExoPlayer. Ich habe es noch nicht versucht, aber es scheint ein interessanter Ausgangspunkt zu sein, Standard Equalizer in ExoPlayer zu integrieren.

Lassen Sie mich wissen, ob es funktioniert! Hier

ist das Beispiel, das ich anfangen würde, mit:

audioRenderer = new MediaCodecAudioTrackRenderer(......){ 

private Equalizer equalizer; 

@Override 
public void onAudioSessionId (int audioSessionId){ 
    releaseEqualizer(); 
    equalizer = new Equalizer(...,audioSessionId); 
    // Configure equalizer here. 
    equalizer.setEnabled(true); 
} 

@Override 
public void onDisabled() { 
    releaseEqualizer(); 
} 

private void releaseEqualizer() { 
    if (equalizer != null) { 
     equalizer.release(); 
     equalizer = null; 
    } 
} 
}; 

Darüber hinaus scheint es mit dem Ausgleich einige Probleme zu sein. Sie können versuchen, die Problemumgehung (standardmäßig deaktiviert) in Audiotrack zu aktivieren, das folgende Flag auf true setzen:

public static boolean enablePreV21AudioSessionWorkaround = false;

0

Sie haben den Namen Ihres Paket und aktuellen Media Player Audio-Session-ID als zusätzlichen vor dem Start zur Verfügung zu stellen die Aktivität. Fügen Sie den folgenden Code hinzu, bevor Sie startActivityForResult aufrufen.

intent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, getPackageName()); 
intent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, player.getAudioSessionId()); 

wo Player eine Instanz von MediaPlayer ist.