【问题标题】:Equalizers, bassboost and reverb effect not working (using FFmpegMediaPlayer)均衡器、低音增强和混响效果不起作用(使用 FFmpegMediaPlayer)
【发布时间】:2018-07-12 04:13:32
【问题描述】:

我目前正在使用来自 github 的 FFmpegMediaPlayer,效果在手机中不起作用,但在模拟器中完美运行,两者都是相同的 API 22。

奇怪的是,当我将代码从 FFmpegMediaplayer 切换到标准的 android 媒体播放器时,效果又开始在真机设备中起作用。但是当我切换回 ffpmeg 时,效果只在模拟器中有效,在真实设备中无效。我的代码如下,

 public void setupVisualizerFxAndUI() {

    try {
        mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId());
        mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
        mEqualizer.setEnabled(true);

        try {
            bassBoost = new BassBoost(0, mMediaPlayer.getAudioSessionId());
            bassBoost.setEnabled(false);
            BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
            BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
            bassBoostSetting.strength = (1000 / 19);
            bassBoost.setProperties(bassBoostSetting);
            mMediaPlayer.setAuxEffectSendLevel(1.0f);

            presetReverb = new PresetReverb(0, mMediaPlayer.getAudioSessionId());
            presetReverb.setPreset(PresetReverb.PRESET_NONE);
            presetReverb.setEnabled(false);
            mMediaPlayer.setAuxEffectSendLevel(1.0f);
        } catch (Exception e) {
            e.printStackTrace();
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    if (homeActivity.isEqualizerEnabled) {
        try {
            bassBoost.setEnabled(true);
            BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
            BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
            if (homeActivity.bassStrength == -1) {
                bassBoostSetting.strength = (1000 / 19);
            } else {
                bassBoostSetting.strength = homeActivity.bassStrength;
            }
            bassBoost.setProperties(bassBoostSetting);
            mMediaPlayer.setAuxEffectSendLevel(1.0f);


            if (homeActivity.reverbPreset == -1) {
                presetReverb.setPreset(PresetReverb.PRESET_NONE);
            } else {
                presetReverb.setPreset(homeActivity.reverbPreset);
            }
            presetReverb.setEnabled(true);
            mMediaPlayer.setAuxEffectSendLevel(1.0f);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    if (homeActivity.isEqualizerEnabled && homeActivity.isEqualizerReloaded) {
        try {
            homeActivity.isEqualizerEnabled = true;
            int pos = homeActivity.presetPos;
            if (pos != 0) {
                mEqualizer.usePreset((short) (pos - 1));
            } else {
                for (short i = 0; i < 5; i++) {
                    mEqualizer.setBandLevel(i, (short) homeActivity.seekbarpos[i]);
                }
            }
            if (homeActivity.bassStrength != -1 && homeActivity.reverbPreset != -1) {
                bassBoost.setEnabled(true);
                bassBoost.setStrength(homeActivity.bassStrength);
                presetReverb.setEnabled(true);
                presetReverb.setPreset(homeActivity.reverbPreset);
            }
            mMediaPlayer.setAuxEffectSendLevel(1.0f);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

其中 mMediaPlayer 是 ffmpeg...除此之外,该库在流式传输方面运行良好。唯一的问题是它没有任何效果。我认为这可能是一个编码问题,所以我只是用上面提到的 Android 标准媒体播放器切换了 ffmpeg,它可以工作。 FFmpeg - 低音增强和均衡器仅适用于模拟器,不适用于真实手机设备。

另一个奇怪的事情是,效果最初在调试运行模式下有效,在我签署 apk 后停止工作。从那时起,它在调试和任何其他运行模式下都停止工作,即 - 发布也......我也没有使用任何专业保护规则。

注意事项: 1.用标准媒体播放器替换FFmpegmediaplayer,效果有效。 2.效果在签署apk之前工作,然后在所有运行模式下停止工作 3. 对 FFMpegmediaplayer 效果使用上面相同的代码仅适用于 模拟器而不是真实设备。 4.除了效果问题,FFmpegmediaplayer的功能 流媒体和本地播放 - 在真机设备和模拟器中。

【问题讨论】:

    标签: android c++ ffmpeg android-mediaplayer android-ffmpeg


    【解决方案1】:

    没关系自己找到答案。对于那些有同样问题的人,我建议手动更改库并希望它有效。导致它与正在使用的库相关的问题或错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多