PendingIntent CreateContentIntent(MediaDescriptionCompat description) { var intent = new Intent(Service, typeof(MusicPlayerActivity)); intent.SetFlags(ActivityFlags.SingleTop); intent.PutExtra(MusicPlayerActivity.EXTA_START_FULLSCREEN, true); if (description != null) { intent.PutExtra(MusicPlayerActivity.CurrentMediaDescription, description); } return(PendingIntent.GetActivity(Service, RequestCode, intent, PendingIntentFlags.CancelCurrent)); }
public static IMediaItem ToMediaItem(this MediaDescriptionCompat mediaDescription) { var item = new MediaItem(mediaDescription.MediaUri.ToString()); //item.Advertisement = mediaDescription. //item.Album = mediaDescription. //item.AlbumArt = mediaDescription. //item.AlbumArtist = mediaDescription. //item.AlbumArtUri = mediaDescription. //item.Art = mediaDescription. //item.Artist = mediaDescription. //item.ArtUri = mediaDescription. //item.Author = mediaDescription. //item.BtFolderType = mediaDescription. //item.Compilation = mediaDescription. //item.Composer = mediaDescription. //item.Date = mediaDescription. //item.DiscNumber = mediaDescription. //item.DisplayDescription = mediaDescription. item.DisplayIcon = mediaDescription.IconBitmap; item.DisplayIconUri = mediaDescription.IconUri.ToString(); item.DisplaySubtitle = mediaDescription.Subtitle; item.DisplayTitle = mediaDescription.Title; //item.DownloadStatus = mediaDescription. //item.Duration = mediaDescription. item.Extras = mediaDescription.Extras; //item.Genre = mediaDescription. item.MediaId = mediaDescription.MediaId; item.MediaUri = mediaDescription.MediaUri.ToString(); //item.NumTracks = mediaDescription. //item.Rating = mediaDescription. item.Title = mediaDescription.Title; //item.TrackNumber = mediaDescription. //item.UserRating = mediaDescription. //item.Writer = mediaDescription. //item.Year = mediaDescription. item.IsMetadataExtracted = true; return(item); }
public override void OnAddQueueItem(MediaDescriptionCompat description, int index) => OnAddQueueItemAtIndexImpl?.Invoke(description, index);
public override void OnAddQueueItem(MediaDescriptionCompat description) => OnAddQueueItemImpl?.Invoke(description);
public void Add(int index, MediaDescriptionCompat description) { mediaManager.MediaQueue.Insert(index, description.ToMediaItem()); }
public IMediaSource CreateMediaSource(MediaDescriptionCompat description) { return(description?.ToMediaItem()?.ToMediaSource()); }
Notification CreateNotification() { LogHelper.Debug(Tag, "updateNotificationMetadata. mMetadata=" + metadata); if (metadata == null || playbackState == null) { return(null); } var notificationBuilder = new Android.Support.V7.App.NotificationCompat.Builder(service); int playPauseButtonPosition = 0; // If skip to previous action is enabled if ((playbackState.Actions & PlaybackStateCompat.ActionSkipToPrevious) != 0) { notificationBuilder.AddAction(Resource.Drawable.ic_skip_previous_white_24dp, "Previous", previousIntent); playPauseButtonPosition = 1; } AddPlayPauseAction(notificationBuilder); // If skip to next action is enabled if ((playbackState.Actions & PlaybackStateCompat.ActionSkipToNext) != 0) { notificationBuilder.AddAction(Resource.Drawable.ic_skip_next_white_24dp, "Next", nextIntent); } MediaDescriptionCompat description = metadata.Description; string fetchArtUrl = null; Bitmap art = null; if (description.IconUri != null) { String artUrl = description.IconUri.ToString(); art = AlbumArtCache.Instance.GetBigImage(artUrl); if (art == null) { fetchArtUrl = artUrl; art = BitmapFactory.DecodeResource(service.Resources, Resource.Drawable.ic_default_art); } } notificationBuilder .SetStyle(new Android.Support.V7.App.NotificationCompat.MediaStyle() .SetShowActionsInCompactView( new[] { playPauseButtonPosition }) // show only play/pause in compact view .SetMediaSession(sessionToken)) .SetColor(notificationColor) .SetSmallIcon(Resource.Drawable.ic_notification) .SetVisibility(Android.Support.V7.App.NotificationCompat.VisibilityPublic) .SetUsesChronometer(true) //.SetContentIntent(CreateContentIntent()) .SetContentTitle(description.Title) .SetContentText(description.Subtitle) .SetLargeIcon(art); SetNotificationPlaybackState(notificationBuilder); if (fetchArtUrl != null) { FetchBitmapFromURL(fetchArtUrl, notificationBuilder); } return(notificationBuilder.Build()); }