now using audio service
This commit is contained in:
17
lib/Globals.dart
Normal file
17
lib/Globals.dart
Normal file
@@ -0,0 +1,17 @@
|
||||
import 'package:audio_service/audio_service.dart';
|
||||
|
||||
import 'ListenHandler.dart';
|
||||
|
||||
late final ListenHandler _listenHandler;
|
||||
|
||||
Future<void> setupListenHandler() async {
|
||||
_listenHandler = await AudioService.init(
|
||||
builder: () => ListenHandler(),
|
||||
config: const AudioServiceConfig(
|
||||
androidNotificationChannelId: 'net.ything.radio.channel.audio',
|
||||
androidNotificationChannelName: 'Ything Radio Playback',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
ListenHandler getListenHandlder() => _listenHandler;
|
||||
@@ -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<PlayControls>
|
||||
|
||||
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<PlayControls>
|
||||
super.build(context);
|
||||
|
||||
if (isPlaying) {
|
||||
player.resume();
|
||||
//player.resume();
|
||||
_listenHandler.play();
|
||||
} else {
|
||||
player.stop();
|
||||
//player.stop();
|
||||
_listenHandler.stop();
|
||||
}
|
||||
return ClipOval(
|
||||
child: Material(
|
||||
|
||||
26
lib/ListenHandler.dart
Normal file
26
lib/ListenHandler.dart
Normal file
@@ -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<void> play() => _player.resume();
|
||||
|
||||
@override
|
||||
Future<void> pause() => _player.stop();
|
||||
|
||||
@override
|
||||
Future<void> stop() => _player.stop();
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'Globals.dart';
|
||||
import 'YthingRadio.dart';
|
||||
|
||||
void main() {
|
||||
Future<void> main() async {
|
||||
setupListenHandler();
|
||||
runApp(const YthingRadio());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user