protected virtual void OnMediaMetadataChanged(MediaMetadataChangedEventArgs e) { ThreadPool.QueueUserWorkItem(m => { MediaMetadataChanged?.Invoke(this, e); }); }
private void MusicController_MediaMetadataChanged(object sender, MediaMetadataChangedEventArgs e) { Activity?.RunOnUiThread(() => { activityIntent = e.ActivityIntent; tvTitle.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyTitle); tvAlbum.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyAlbum); tvArtist.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyArtist); skbSeekSongTime.Max = (int)e.MediaMetadata.GetLong(MediaMetadata.MetadataKeyDuration); ThreadPool.QueueUserWorkItem(m => { var albumart = e.MediaMetadata.GetBitmap(MediaMetadata.MetadataKeyAlbumArt); var wallpaper = new BitmapDrawable(Activity.Resources, albumart); int opacitylevel = configurationManager.RetrieveAValue(ConfigurationParameters.AlbumArtOpacityLevel, 255); int blurLevel = configurationManager.RetrieveAValue(ConfigurationParameters.AlbumArtBlurLevel, 1); //Never used (for now) CurrentAlbumArt = wallpaper; if (configurationManager.RetrieveAValue(ConfigurationParameters.ShowAlbumArt)) { WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs { Wallpaper = wallpaper, OpacityLevel = (short)opacitylevel, BlurLevel = 0, //Causes a crash That currently I cant debug, damn, thats why is 0. (No blur) and ignoring the value the used have setted. WallpaperPoster = WallpaperPoster.MusicPlayer //We must nutify WallpaperPublisher who is posting the wallpaper, otherwise it'll be ignored. }); } }); }); }
protected virtual void OnMediaMetadataChanged(MediaMetadataChangedEventArgs e) { if (e.MediaMetadata != null) //Sometimes MediaMetadata is null, and it could cause a Crash later in MusicWidget { ThreadPool.QueueUserWorkItem(m => { MediaMetadataChanged?.Invoke(this, e); }); } }
private void MusicController_MediaMetadataChanged(object sender, MediaMetadataChangedEventArgs e) { bool shouldChangeArtwork = true; if (configurationManager.RetrieveAValue(ConfigurationParameters.DisableArtworkUpdateOnSameAlbum) && (tvAlbum?.Text != null && tvAlbum?.Text == e.MediaMetadata?.GetString(MediaMetadata.MetadataKeyAlbum))) { shouldChangeArtwork = false; } if (shouldChangeArtwork) { ThreadPool.QueueUserWorkItem(m => { var albumart = e.MediaMetadata?.GetBitmap(MediaMetadata.MetadataKeyAlbumArt); var wallpaper = new BitmapDrawable(Resources, albumart); int opacitylevel = configurationManager.RetrieveAValue(ConfigurationParameters.AlbumArtOpacityLevel, ConfigurationParameters.DefaultAlbumartOpacityLevel); int blurLevel = configurationManager.RetrieveAValue(ConfigurationParameters.AlbumArtBlurLevel, ConfigurationParameters.DefaultAlbumartBlurLevel); CurrentAlbumArt = wallpaper; if (configurationManager.RetrieveAValue(ConfigurationParameters.ShowAlbumArt)) { WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs { Wallpaper = wallpaper, OpacityLevel = (short)opacitylevel, BlurLevel = (short)blurLevel, WallpaperPoster = WallpaperPoster.MusicPlayer //We must nutify WallpaperPublisher who is posting the wallpaper, otherwise it'll be ignored. }); } }); } Activity?.RunOnUiThread(() => { activityIntent = e.ActivityIntent; tvTitle.Text = e.MediaMetadata?.GetString(MediaMetadata.MetadataKeyTitle); tvAlbum.Text = e.MediaMetadata?.GetString(MediaMetadata.MetadataKeyAlbum); tvArtist.Text = e.MediaMetadata?.GetString(MediaMetadata.MetadataKeyArtist); skbSeekSongTime.Max = (int)e.MediaMetadata?.GetLong(MediaMetadata.MetadataKeyDuration) / 1000; openNotificationId = e.OpenNotificationId; if (e.AppName != string.Empty) { sourceApp.Text = string.Format(Resources.GetString(Resource.String.playing_from_template), e.AppName); } }); }
private void MusicController_MediaMetadataChanged(object sender, MediaMetadataChangedEventArgs e) { tvTitle.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyTitle); tvAlbum.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyAlbum); tvArtist.Text = e.MediaMetadata.GetString(MediaMetadata.MetadataKeyArtist); skbSeekSongTime.Max = (int)e.MediaMetadata.GetLong(MediaMetadata.MetadataKeyDuration); using (var albumart = e.MediaMetadata.GetBitmap(MediaMetadata.MetadataKeyAlbumArt)) { using (var wallpaper = new BitmapDrawable(Resources, albumart)) { int opacitylevel = configurationManager.RetrieveAValue(ConfigurationParameters.OpacityLevel, 255); WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs { Wallpaper = wallpaper, OpacityLevel = (short)opacitylevel }); } } GC.Collect(); }
protected virtual void OnMediaMetadataChanged(MediaMetadataChangedEventArgs e) { MediaMetadataChanged?.Invoke(this, e); }