android — Эквалайзеры, басы и эффект реверберации не работают (с использованием FFmpegMediaPlayer)

Я сейчас пользуюсь FFmpegMediaPlayer от GitHub и эффекты не работают в телефоне, но отлично работают в эмуляторе, которые оба являются одним и тем же 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 … Кроме того, библиотека работает нормально в отношении потоковой передачи. Единственная проблема заключается в том, что он не дает никакого эффекта. Я подумал, что это может быть проблемой кодирования, поэтому я просто переключил ffmpeg на стандартный медиа-плеер Android, как я упоминал выше, и он работает. FFmpeg — усиление басов и эквалайзер работает только в эмуляторе, а не на реальном устройстве телефона.

Другая странная вещь заключалась в том, что первоначально эффект работал сначала в режиме отладочной работы и перестал работать после того, как я подписал apk. С этого момента он перестал работать как в режиме отладки, так и в любых других режимах выполнения, т. Е. Выпустить также …. Я не использую никаких правил pro guard.

Обратите внимание:
1. Замена FFmpegmediaplayer на стандартный медиаплеер с эффектами работает.
2. Эффекты работали до подписания apk, затем перестали работать во всех режимах запуска
3. Использование того же кода выше для эффектов FFMpegmediaplayer работает только в
Эмулятор а не в реальном устройстве.
4. Помимо проблемы с эффектами, FFmpegmediaplayer функционирует в отношении
потоковое и локальное воспроизведение — как в реальном телефоне, так и в эмуляторе.

0

Решение

Неважно сам нашел ответ. Для тех из вас, у кого есть такая же проблема, я предлагаю изменить библиотеки вручную и надеюсь, что это сработает. Причиной является проблема или ошибка, связанная с используемой библиотекой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector