From 8a42093c6da8032be1a841aea62d747e907801e3 Mon Sep 17 00:00:00 2001 From: David Senk Date: Sun, 8 Sep 2024 17:13:47 -0400 Subject: [PATCH] now using audio service --- lib/Globals.dart | 17 +++++++++++++++++ lib/Listen.dart | 32 +++++++++++++++++++++----------- lib/ListenHandler.dart | 26 ++++++++++++++++++++++++++ lib/ListenTask.dart | 0 lib/main.dart | 4 +++- 5 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 lib/Globals.dart create mode 100644 lib/ListenHandler.dart delete mode 100644 lib/ListenTask.dart diff --git a/lib/Globals.dart b/lib/Globals.dart new file mode 100644 index 0000000..8a928c9 --- /dev/null +++ b/lib/Globals.dart @@ -0,0 +1,17 @@ +import 'package:audio_service/audio_service.dart'; + +import 'ListenHandler.dart'; + +late final ListenHandler _listenHandler; + +Future setupListenHandler() async { + _listenHandler = await AudioService.init( + builder: () => ListenHandler(), + config: const AudioServiceConfig( + androidNotificationChannelId: 'net.ything.radio.channel.audio', + androidNotificationChannelName: 'Ything Radio Playback', + ), + ); +} + +ListenHandler getListenHandlder() => _listenHandler; diff --git a/lib/Listen.dart b/lib/Listen.dart index e19688b..9a0363e 100644 --- a/lib/Listen.dart +++ b/lib/Listen.dart @@ -1,6 +1,8 @@ -import 'package:audioplayers/audioplayers.dart'; import 'package:flutter/material.dart'; +import 'Globals.dart'; +import 'ListenHandler.dart'; + class Listen extends StatelessWidget { const Listen({super.key}); @@ -26,27 +28,33 @@ class _PlayControlsState extends State bool isPlaying = false; - late final AudioPlayer player; + //late final AudioPlayer player; + + final ListenHandler _listenHandler = getListenHandlder(); @override - void initState() { + initState() { super.initState(); - player = AudioPlayer(); + print("Listen init"); - player.setReleaseMode(ReleaseMode.release); + //player = AudioPlayer(); - player - .setSourceUrl("https://generic.ything.app/music/separation-185196.mp3"); + //player.setReleaseMode(ReleaseMode.release); + + //player + // .setSourceUrl("https://generic.ything.app/music/separation-185196.mp3"); } @override void dispose() { super.dispose(); - player.stop(); + //player.stop(); - player.dispose(); + //player.dispose(); + + _listenHandler.stop(); } @override @@ -54,9 +62,11 @@ class _PlayControlsState extends State super.build(context); if (isPlaying) { - player.resume(); + //player.resume(); + _listenHandler.play(); } else { - player.stop(); + //player.stop(); + _listenHandler.stop(); } return ClipOval( child: Material( diff --git a/lib/ListenHandler.dart b/lib/ListenHandler.dart new file mode 100644 index 0000000..21f1444 --- /dev/null +++ b/lib/ListenHandler.dart @@ -0,0 +1,26 @@ +import 'package:audio_service/audio_service.dart'; +import 'package:audioplayers/audioplayers.dart'; + +class ListenHandler extends BaseAudioHandler { + final _player = AudioPlayer(); + + setup_player() { + _player.setReleaseMode(ReleaseMode.release); + + _player + .setSourceUrl("https://generic.ything.app/music/separation-185196.mp3"); + } + + ListenHandler() { + setup_player(); + } + + @override + Future play() => _player.resume(); + + @override + Future pause() => _player.stop(); + + @override + Future stop() => _player.stop(); +} diff --git a/lib/ListenTask.dart b/lib/ListenTask.dart deleted file mode 100644 index e69de29..0000000 diff --git a/lib/main.dart b/lib/main.dart index b383809..9e41112 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; +import 'Globals.dart'; import 'YthingRadio.dart'; -void main() { +Future main() async { + setupListenHandler(); runApp(const YthingRadio()); }