android - 如何在 App 中使用原生均衡器

标签 android android-audiomanager audio-player equalizer android-music-player

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

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

用户更改均衡器设置后如何在当前播放的音频文件中应用均衡器设置。我们正在使用 Exoplayer 播放音乐文件。

提前致谢。

最佳答案

请看这个问题(已关闭):

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;

关于android - 如何在 App 中使用原生均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636657/

相关文章:

Android 振动 API

Android AudioManager abandonAudioFocus 没有帮助其他应用播放音乐

android - 在android中录制音频时调整麦克风灵敏度

python - Pygame Mixer.music无法读取mp3流

java - mp3 播放几次后就停止播放?

android - 在 Android 4.0+ 上显示光标而不使用真正的鼠标

android - 我想从数据库中检索数据

android - 带有文件传输插件的 Cordova/phonegap : FileTransferError. FILE_NOT_FOUND_ERR

机器人 : Relative layout width wrap_content

python - pygame.错误: set_pos unsupported for this codec