2016-07-28 1 views
3

다음 코드를 사용하여 이퀄라이저를 엽니 다. 사용자가 음악 파일을 재생하기위한 Exoplayer을 사용하여 현재 재생중인 오디오 file.We에 이퀄라이저 설정을 적용하는 방법 이퀄라이저 설정을 변경 한 후기본 이퀄라이저를 사용하는 방법

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); 
} 

그리고는 권한

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

을 추가했다.

미리 감사드립니다.

답변

-1

(폐쇄)이 문제를보고하십시오 :

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

ExoPlayer에 이퀄라이저를 사용하는 방법에 대한 흥미로운 예제가있다. 아직 시도하지는 않았지만 표준 이퀄라이저를 ExoPlayer에 통합하는 것은 흥미로운 출발점으로 보입니다.

작동하는지 알려주세요.

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; 
    } 
} 
}; 

또한 이퀄라이저와 약간의 문제가있을 것 같습니다 : 여기

함께 내가 시작하는 것이 예입니다. true로 다음과 같은 플래그를 설정, AudioTrack에서 (기본적으로 비활성화) 해결 방법을 사용하도록 시도 할 수 있습니다 :

public static boolean enablePreV21AudioSessionWorkaround = false;

0

당신이 시작하기 전에 같은 추가 귀하의 패키지 이름과 현재의 미디어 플레이어 오디오 세션 ID를 제공해야 활동. startActivityForResult를 호출하기 전에 아래 코드를 추가하십시오.

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

플레이어는 MediaPlayer의 인스턴스입니다.

관련 문제