global audio session handlder
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
import 'package:audio_service/audio_service.dart';
|
import 'package:audio_service/audio_service.dart';
|
||||||
|
import 'package:audio_session/audio_session.dart';
|
||||||
|
|
||||||
import 'ListenHandler.dart';
|
import 'ListenHandler.dart';
|
||||||
|
|
||||||
late final ListenHandler _listenHandler;
|
late final ListenHandler _listenHandler;
|
||||||
|
late final AudioSession _session;
|
||||||
|
|
||||||
Future<void> setupListenHandler() async {
|
Future<void> setupListenHandler() async {
|
||||||
_listenHandler = await AudioService.init(
|
_listenHandler = await AudioService.init(
|
||||||
@@ -12,6 +14,17 @@ Future<void> setupListenHandler() async {
|
|||||||
androidNotificationChannelName: 'Ything Radio Playback',
|
androidNotificationChannelName: 'Ything Radio Playback',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
_session = await AudioSession.instance;
|
||||||
|
|
||||||
|
await _session.configure(const AudioSessionConfiguration.music());
|
||||||
}
|
}
|
||||||
|
|
||||||
ListenHandler getListenHandlder() => _listenHandler;
|
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:audio_service/audio_service.dart';
|
||||||
import 'package:audioplayers/audioplayers.dart';
|
import 'package:audioplayers/audioplayers.dart';
|
||||||
|
import 'package:ything_radio/Globals.dart';
|
||||||
|
|
||||||
class ListenHandler extends BaseAudioHandler {
|
class ListenHandler extends BaseAudioHandler {
|
||||||
final _player = AudioPlayer();
|
final _player = AudioPlayer();
|
||||||
@@ -16,11 +17,18 @@ class ListenHandler extends BaseAudioHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> play() => _player.resume();
|
Future<void> play() async {
|
||||||
|
if (await startAudioSession()) {
|
||||||
@override
|
_player.resume();
|
||||||
Future<void> pause() => _player.stop();
|
}
|
||||||
|
}
|
||||||
@override
|
|
||||||
Future<void> stop() => _player.stop();
|
@override
|
||||||
|
Future<void> pause() async {
|
||||||
|
await stopAudioSession();
|
||||||
|
_player.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> stop() => pause();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user