From c8e44f810adb6cf0e85c3a0d566ea52559a62bbd Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Sat, 26 Mar 2022 11:55:09 +0100 Subject: [PATCH] Can control player from browser --- lib/ui/music_player.dart | 9 ++++++++- lib/ui/player_web_interface.dart | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/ui/music_player.dart b/lib/ui/music_player.dart index 9bcb26b..058d2a8 100644 --- a/lib/ui/music_player.dart +++ b/lib/ui/music_player.dart @@ -81,7 +81,14 @@ class _MusicPlayerState extends State { } })); - updateMusicSession(currMusic); + updateMusicSession( + entry: currMusic, + onPlay: _play, + onPause: _pause, + onNextTrack: _playNext, + onPreviousTrack: _playPrevious, + onStop: _stop, + ); } } diff --git a/lib/ui/player_web_interface.dart b/lib/ui/player_web_interface.dart index 05d9ebc..9b20e60 100644 --- a/lib/ui/player_web_interface.dart +++ b/lib/ui/player_web_interface.dart @@ -5,7 +5,14 @@ import 'dart:html'; import 'package:audio_service_web/js/media_session_web.dart'; import 'package:music_web_player/api.dart'; -void updateMusicSession(MusicEntry entry) { +void updateMusicSession({ + required MusicEntry entry, + required Function() onPlay, + required Function() onPause, + required Function() onStop, + required Function() onPreviousTrack, + required Function() onNextTrack, +}) { MediaSession.metadata = MediaMetadata({ "title": entry.title, "artist": entry.artist, @@ -17,4 +24,10 @@ void updateMusicSession(MusicEntry entry) { } ] }); + + MediaSession.setActionHandler("play", (p0) => onPlay()); + MediaSession.setActionHandler("pause", (p0) => onPause()); + MediaSession.setActionHandler("stop", (p0) => onStop()); + MediaSession.setActionHandler("previoustrack", (p0) => onPreviousTrack()); + MediaSession.setActionHandler("nexttrack", (p0) => onNextTrack()); }