minor refactoring / cleaning
This commit is contained in:
@@ -17,6 +17,36 @@ Future<void> setupListenHandler() async {
|
||||
_session = await AudioSession.instance;
|
||||
|
||||
await _session.configure(const AudioSessionConfiguration.music());
|
||||
|
||||
//TODO: Do I need to handle these events? audioplayers may be doing it already
|
||||
//_session.interruptionEventStream.listen((event) {
|
||||
// if (event.begin) {
|
||||
// switch (event.type) {
|
||||
// case AudioInterruptionType.duck:
|
||||
// _listenHandler.duck();
|
||||
// break;
|
||||
// case AudioInterruptionType.pause:
|
||||
// case AudioInterruptionType.unknown:
|
||||
// _listenHandler.pause();
|
||||
// break;
|
||||
// }
|
||||
// } else {
|
||||
// switch (event.type) {
|
||||
// case AudioInterruptionType.duck:
|
||||
// _listenHandler.unDuck();
|
||||
// break;
|
||||
// case AudioInterruptionType.pause:
|
||||
// _listenHandler.play();
|
||||
// break;
|
||||
// case AudioInterruptionType.unknown:
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
|
||||
//_session.becomingNoisyEventStream.listen((_) {
|
||||
// _listenHandler.pause();
|
||||
//});
|
||||
}
|
||||
|
||||
ListenHandler getListenHandlder() => _listenHandler;
|
||||
|
||||
@@ -45,6 +45,7 @@ class _PlayControlsState extends State<PlayControls>
|
||||
print("Listen init");
|
||||
|
||||
_listenHandler.playbackState.listen((PlaybackState state) {
|
||||
print("Playback state changed");
|
||||
setState(() {});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,18 +11,11 @@ class ListenHandler extends BaseAudioHandler {
|
||||
|
||||
setup_player() {
|
||||
_player.setReleaseMode(ReleaseMode.release);
|
||||
}
|
||||
_player.onPlayerStateChanged.listen((event) {
|
||||
print("Received audioplayers event: $event");
|
||||
|
||||
ListenHandler() {
|
||||
setup_player();
|
||||
}
|
||||
|
||||
bool isPlaying() => super.playbackState.value.playing;
|
||||
|
||||
@override
|
||||
Future<void> play() async {
|
||||
if (await startAudioSession()) {
|
||||
_player.play(_radioSource, mode: PlayerMode.mediaPlayer);
|
||||
switch (event) {
|
||||
case PlayerState.playing:
|
||||
super.playbackState.add(PlaybackState(
|
||||
controls: [
|
||||
MediaControl.stop,
|
||||
@@ -34,16 +27,52 @@ class ListenHandler extends BaseAudioHandler {
|
||||
},
|
||||
playing: true,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> pause() async {
|
||||
break;
|
||||
case PlayerState.paused:
|
||||
case PlayerState.stopped:
|
||||
case PlayerState.completed:
|
||||
case PlayerState.disposed:
|
||||
super.playbackState.add(PlaybackState(
|
||||
controls: [],
|
||||
systemActions: {},
|
||||
playing: false,
|
||||
));
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ListenHandler() {
|
||||
setup_player();
|
||||
}
|
||||
|
||||
bool isPlaying() => super.playbackState.value.playing;
|
||||
|
||||
double _duckVol = 0;
|
||||
|
||||
void duck() {
|
||||
//TODO: Confirm I need to do this manually, it looks like audioplayers already does this
|
||||
print("Duck requested");
|
||||
//_duckVol = _player.volume;
|
||||
|
||||
//_player.setVolume(_duckVol - 0.4 > 0 ? _duckVol - 0.4 : 0.0);
|
||||
}
|
||||
|
||||
void unDuck() {
|
||||
//TODO: Confirm I need to do this manually, it looks like audioplayers already does this
|
||||
print("Unduck requested");
|
||||
//_player.setVolume(_duckVol);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> play() async {
|
||||
if (await startAudioSession()) {
|
||||
_player.play(_radioSource, mode: PlayerMode.mediaPlayer);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> pause() async {
|
||||
await stopAudioSession();
|
||||
_player.stop();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user