diff --git a/lib/Globals.dart b/lib/Globals.dart index 8a928c9..f1b757b 100644 --- a/lib/Globals.dart +++ b/lib/Globals.dart @@ -1,8 +1,10 @@ import 'package:audio_service/audio_service.dart'; +import 'package:audio_session/audio_session.dart'; import 'ListenHandler.dart'; late final ListenHandler _listenHandler; +late final AudioSession _session; Future setupListenHandler() async { _listenHandler = await AudioService.init( @@ -12,6 +14,17 @@ Future setupListenHandler() async { androidNotificationChannelName: 'Ything Radio Playback', ), ); + _session = await AudioSession.instance; + + await _session.configure(const AudioSessionConfiguration.music()); } ListenHandler getListenHandlder() => _listenHandler; + +Future startAudioSession() async { + return await _session.setActive(true); +} + +Future stopAudioSession() async { + await _session.setActive(false); +} diff --git a/lib/ListenHandler.dart b/lib/ListenHandler.dart index 21f1444..6998d50 100644 --- a/lib/ListenHandler.dart +++ b/lib/ListenHandler.dart @@ -1,5 +1,6 @@ import 'package:audio_service/audio_service.dart'; import 'package:audioplayers/audioplayers.dart'; +import 'package:ything_radio/Globals.dart'; class ListenHandler extends BaseAudioHandler { final _player = AudioPlayer(); @@ -16,11 +17,18 @@ class ListenHandler extends BaseAudioHandler { } @override - Future play() => _player.resume(); + Future play() async { + if (await startAudioSession()) { + _player.resume(); + } + } @override - Future pause() => _player.stop(); + Future pause() async { + await stopAudioSession(); + _player.stop(); + } @override - Future stop() => _player.stop(); + Future stop() => pause(); }