From 6b87a9f8f0033e23d3753f69e6319aa24406bb62 Mon Sep 17 00:00:00 2001 From: Anonymous Raccoon <32224410+AnonymusRaccoon@users.noreply.github.com> Date: Tue, 22 May 2018 21:23:54 +0200 Subject: [PATCH] Adding headphones actions --- .../Portable Class/HeadphonesActions.cs | 41 ++++++++++++++++--- .../Resources/Portable Class/MusicPlayer.cs | 6 +-- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/MusicApp/Resources/Portable Class/HeadphonesActions.cs b/MusicApp/Resources/Portable Class/HeadphonesActions.cs index 4e3fca4..dbe71d0 100644 --- a/MusicApp/Resources/Portable Class/HeadphonesActions.cs +++ b/MusicApp/Resources/Portable Class/HeadphonesActions.cs @@ -1,4 +1,5 @@ -using Android.Content; +using Android.App; +using Android.Content; using Android.Support.V4.Media.Session; namespace MusicApp.Resources.Portable_Class @@ -7,21 +8,51 @@ namespace MusicApp.Resources.Portable_Class { public override void OnPlay() { - base.OnPlay(); + //base.OnPlay(); + System.Console.WriteLine("&Play"); PlayPause(); } public override void OnPause() { - base.OnPause(); + //base.OnPause(); + System.Console.WriteLine("&Pause"); PlayPause(); } + public override void OnSkipToNext() + { + //base.OnSkipToNext(); + System.Console.WriteLine("&Next"); + Next(); + } + + public override void OnSkipToPrevious() + { + //base.OnSkipToPrevious(); + System.Console.WriteLine("&Previous"); + Previous(); + } + void PlayPause() { - Intent intent = new Intent(Android.App.Application.Context, typeof(MusicPlayer)); + Intent intent = new Intent(Application.Context, typeof(MusicPlayer)); intent.SetAction("Pause"); - Android.App.Application.Context.StartService(intent); + Application.Context.StartService(intent); + } + + void Next() + { + Intent intent = new Intent(Application.Context, typeof(MusicPlayer)); + intent.SetAction("Next"); + Application.Context.StartService(intent); + } + + void Previous() + { + Intent intent = new Intent(Application.Context, typeof(MusicPlayer)); + intent.SetAction("Previus"); + Application.Context.StartService(intent); } } } \ No newline at end of file diff --git a/MusicApp/Resources/Portable Class/MusicPlayer.cs b/MusicApp/Resources/Portable Class/MusicPlayer.cs index 4e3be4c..27aca9c 100644 --- a/MusicApp/Resources/Portable Class/MusicPlayer.cs +++ b/MusicApp/Resources/Portable Class/MusicPlayer.cs @@ -183,7 +183,7 @@ namespace MusicApp.Resources.Portable_Class { mediaSession = new MediaSessionCompat(Application.Context, "MusicApp"); mediaSession.SetFlags(MediaSessionCompat.FlagHandlesMediaButtons | MediaSessionCompat.FlagHandlesTransportControls); - PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder().SetActions(PlaybackStateCompat.ActionPlay | PlaybackStateCompat.ActionPause); + PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder().SetActions(PlaybackStateCompat.ActionPlay | PlaybackStateCompat.ActionPause | PlaybackStateCompat.ActionSkipToNext | PlaybackStateCompat.ActionSkipToPrevious); mediaSession.SetPlaybackState(builder.Build()); mediaSession.SetCallback(new HeadphonesActions()); } @@ -264,7 +264,7 @@ namespace MusicApp.Resources.Portable_Class { mediaSession = new MediaSessionCompat(Application.Context, "MusicApp"); mediaSession.SetFlags(MediaSessionCompat.FlagHandlesMediaButtons | MediaSessionCompat.FlagHandlesTransportControls); - PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder().SetActions(PlaybackStateCompat.ActionPlay | PlaybackStateCompat.ActionPause); + PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder().SetActions(PlaybackStateCompat.ActionPlay | PlaybackStateCompat.ActionPause | PlaybackStateCompat.ActionSkipToNext | PlaybackStateCompat.ActionSkipToPrevious); mediaSession.SetPlaybackState(builder.Build()); mediaSession.SetCallback(new HeadphonesActions()); } @@ -824,7 +824,7 @@ namespace MusicApp.Resources.Portable_Class break; case AudioFocus.Loss: - Stop(); + Pause(); break; case AudioFocus.LossTransient: