global audio session handlder

This commit is contained in:
2024-09-08 17:57:23 -04:00
parent c71508712e
commit e0af795ff6
2 changed files with 24 additions and 3 deletions

View File

@@ -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<void> setupListenHandler() async {
_listenHandler = await AudioService.init(
@@ -12,6 +14,17 @@ Future<void> setupListenHandler() async {
androidNotificationChannelName: 'Ything Radio Playback',
),
);
_session = await AudioSession.instance;
await _session.configure(const AudioSessionConfiguration.music());
}
ListenHandler getListenHandlder() => _listenHandler;
Future<bool> startAudioSession() async {
return await _session.setActive(true);
}
Future<void> stopAudioSession() async {
await _session.setActive(false);
}

View File

@@ -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<void> play() => _player.resume();
Future<void> play() async {
if (await startAudioSession()) {
_player.resume();
}
}
@override
Future<void> pause() => _player.stop();
Future<void> pause() async {
await stopAudioSession();
_player.stop();
}
@override
Future<void> stop() => _player.stop();
Future<void> stop() => pause();
}