// receive event notifications from MusicBee // you need to set about.ReceiveNotificationFlags = PlayerEvents to receive all notifications, and not just the startup event public void ReceiveNotification(string sourceFileUrl, NotificationType type) { switch (type) { case NotificationType.PluginStartup: systemMediaControls = BackgroundMediaPlayer.Current.SystemMediaTransportControls; systemMediaControls.PlaybackStatus = MediaPlaybackStatus.Closed; systemMediaControls.IsEnabled = false; systemMediaControls.IsPlayEnabled = true; systemMediaControls.IsPauseEnabled = true; systemMediaControls.IsStopEnabled = true; systemMediaControls.IsPreviousEnabled = true; systemMediaControls.IsNextEnabled = true; systemMediaControls.IsRewindEnabled = false; systemMediaControls.IsFastForwardEnabled = false; systemMediaControls.ButtonPressed += systemMediaControls_ButtonPressed; systemMediaControls.PlaybackPositionChangeRequested += systemMediaControls_PlaybackPositionChangeRequested; systemMediaControls.PlaybackRateChangeRequested += systemMediaControls_PlaybackRateChangeRequested; systemMediaControls.ShuffleEnabledChangeRequested += systemMediaControls_ShuffleEnabledChangeRequested; systemMediaControls.AutoRepeatModeChangeRequested += systemMediaControls_AutoRepeatModeChangeRequested; displayUpdater = systemMediaControls.DisplayUpdater; displayUpdater.Type = MediaPlaybackType.Music; musicProperties = displayUpdater.MusicProperties; SetDisplayValues(); break; case NotificationType.PlayStateChanged: SetPlayerState(); break; case NotificationType.TrackChanged: SetDisplayValues(); break; } }
/// <summary> /// Sets the current song. /// </summary> /// <param name="song">Song to use.</param> private void SetSong(Song song) { updater.Type = MediaPlaybackType.Music; MusicDisplayProperties musicProps = updater.MusicProperties; musicProps.Title = song.Title; musicProps.Artist = song.Artist; musicProps.TrackNumber = GetTrack(song.Track); musicProps.AlbumTitle = song.Album; musicProps.AlbumArtist = song.Artist; // Don't wait #pragma warning disable CS4014 SetThumbnailAsync(song.Filename); #pragma warning restore CS4014 updater.Update(); }
private void PluginStartUp() { // set up media player to get manual control of SystemMediaTransportControls mediaPlayer = new MediaPlayer(); mediaPlayer.CommandManager.IsEnabled = false; // set up SystemMediaTransportControls systemMediaControls = mediaPlayer.SystemMediaTransportControls; // set flags systemMediaControls.PlaybackStatus = MediaPlaybackStatus.Closed; // nothing in list to play systemMediaControls.IsEnabled = true; // show it systemMediaControls.IsPlayEnabled = true; systemMediaControls.IsPauseEnabled = true; systemMediaControls.IsStopEnabled = true; systemMediaControls.IsPreviousEnabled = true; systemMediaControls.IsNextEnabled = true; systemMediaControls.IsRewindEnabled = true; systemMediaControls.IsFastForwardEnabled = false; // Sync musicbee volume with Windows volume //mbApiInterface.Player_SetVolume() = systemMediaControls.SoundLevel systemMediaControls.ButtonPressed += systemMediaControls_ButtonPressed; systemMediaControls.PlaybackPositionChangeRequested += systemMediaControls_PlaybackPositionChangeRequested; systemMediaControls.PlaybackRateChangeRequested += systemMediaControls_PlaybackRateChangeRequested; systemMediaControls.ShuffleEnabledChangeRequested += systemMediaControls_ShuffleEnabledChangeRequested; systemMediaControls.AutoRepeatModeChangeRequested += systemMediaControls_AutoRepeatModeChangeRequested; // setup overlay properties displayUpdater = systemMediaControls.DisplayUpdater; displayUpdater.Type = MediaPlaybackType.Music; // media type displayUpdater.AppMediaId = "MusicBee"; // program name // setup for display music properties on overlay musicProperties = displayUpdater.MusicProperties; SetDisplayValues(); }