From 5c304ec494a32c01f5c70f9634d5ed402596dbb4 Mon Sep 17 00:00:00 2001 From: metatroncubeswdev Date: Sat, 31 Oct 2026 17:50:41 -0400 Subject: [PATCH] Fix iOS playback: attach the Android-only audio effects only on Android Co-Authored-By: Claude Opus 5.5 --- lib/audio/nk_audio_handler.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/audio/nk_audio_handler.dart b/lib/audio/nk_audio_handler.dart index 08317de..ba2be31 100644 --- a/lib/audio/nk_audio_handler.dart +++ b/lib/audio/nk_audio_handler.dart @@ -4,6 +4,8 @@ import 'package:audio_service/audio_service.dart'; import 'package:audio_session/audio_session.dart'; import 'package:just_audio/just_audio.dart'; +import 'sound_settings.dart'; + /// Owns the [AudioPlayer] and exposes it to the OS (lock screen, notification, /// headset and Bluetooth buttons) through audio_service. class NkAudioHandler extends BaseAudioHandler with SeekHandler { @@ -15,8 +17,10 @@ class NkAudioHandler extends BaseAudioHandler with SeekHandler { final equalizer = AndroidEqualizer(); final loudness = AndroidLoudnessEnhancer(); + // just_audio activates every effect in the pipeline on load, whatever the platform, and the + // Android effects throw on iOS, so attach them only on Android. late final _player = AudioPlayer( - audioPipeline: AudioPipeline(androidAudioEffects: [loudness, equalizer]), + audioPipeline: AudioPipeline(androidAudioEffects: soundEffectsSupported ? [loudness, equalizer] : const []), ); Stream get positionStream => _player.positionStream;