2016-07-28 92 views
3

我正在使用以下代码在应用程序中打开均衡器。如何在应用程序中使用本地均衡器

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"/> 

用户更改均衡器设置后如何在当前播放的音频file.We应用均衡器设置使用Exoplayer播放的音乐文件。

在此先感谢。

回答

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

而且似乎有一些问题与均衡。你可以尝试启用AudioTrack的解决方法(默认禁用),以下标志设置为true:

public static boolean enablePreV21AudioSessionWorkaround = false;

0

你要提供你的包名和当前媒体播放器的音频会话ID开始前,作为额外的活动。在调用startActivityForResult之前添加下面的代码。

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

其中player是MediaPlayer的一个实例。

相关问题