global audio session handlder
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@override
|
||||
Future<void> pause() => _player.stop();
|
||||
|
||||
@override
|
||||
Future<void> stop() => _player.stop();
|
||||
Future<void> play() async {
|
||||
if (await startAudioSession()) {
|
||||
_player.resume();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> pause() async {
|
||||
await stopAudioSession();
|
||||
_player.stop();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stop() => pause();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user