// 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; } }
public MediaControlBarViewModel() { ShuffleButtonVisible = false; RepeatButtonVisible = false; Volume = 100; DevicesButtonVisible = true; DevicesButtonColor = new SolidColorBrush(Colors.Black); ConnectionBarVisible = false; ConnectionBarColor = AppConstants.RedBrush; ConnectionBarText = "Disconnected"; ReconnectButtonEnabled = true; PlayPauseIcon = Symbol.Play; systemMediaTransportControls = SystemMediaTransportControls.GetForCurrentView(); systemMediaTransportControls.IsPlayEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; systemMediaTransportControls.IsNextEnabled = true; systemMediaTransportControls.IsPreviousEnabled = true; systemMediaTransportControls.ButtonPressed += SystemMediaTransportControls_ButtonPressed; systemMediaTransportControls.PlaybackStatus = MediaPlaybackStatus.Closed; display = systemMediaTransportControls.DisplayUpdater; display.Type = MediaPlaybackType.Music; display.Update(); WebPlayerViewModel.WebPlaybackStateChanged += WebPlayerViewModel_WebPlaybackStateChanged; }
public async Task SetMediaTransportControlsInfo(string title) { await App.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { try { if (_systemMediaTransportControls == null) { return; } LogHelper.Log("PLAYVIDEO: Updating SystemMediaTransportControls"); SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Video; _systemMediaTransportControls.IsPreviousEnabled = false; _systemMediaTransportControls.IsNextEnabled = false; //Video metadata updater.VideoProperties.Title = title; //TODO: add full thumbnail suport updater.Thumbnail = null; updater.Update(); } catch (Exception exception) { ExceptionHelper.CreateMemorizedException("MediaPlaybackViewModel.SetMediaTransportControls(title)", exception); } }); }
private async void TracklistPlayer_SongChanged(object sender, SongChangedEventArgs e) { SystemMediaTransportControlsDisplayUpdater updater = this.systemMediaControls.DisplayUpdater; StorageFile file = await SongImageUtil.LoadStorageFileAsync(e.NewSong.SongId); if (file == null) { updater.Thumbnail = RandomAccessStreamReference.CreateFromUri(ImageUtil.GetAssetsImageUriByFileName("Favor.png")); } else { updater.Thumbnail = RandomAccessStreamReference.CreateFromFile(file); } Song currentSong = this.CurrentSong; updater.Type = MediaPlaybackType.Music; updater.MusicProperties.Title = currentSong.Title; updater.MusicProperties.TrackNumber = (uint)currentSong.Track; updater.MusicProperties.AlbumTitle = currentSong.Album.Name; updater.MusicProperties.AlbumArtist = currentSong.Album.Artist.Name; updater.MusicProperties.Artist = currentSong.Album.Artist.Name; updater.Update(); }
public static void InitializeHyPlaylist() { Player = new MediaPlayer() { AutoPlay = true, IsLoopingEnabled = false }; MediaSystemControls = SystemMediaTransportControls.GetForCurrentView(); ControlsDisplayUpdater = MediaSystemControls.DisplayUpdater; Player.CommandManager.IsEnabled = false; MediaSystemControls.IsPlayEnabled = true; MediaSystemControls.IsPauseEnabled = true; MediaSystemControls.IsNextEnabled = true; MediaSystemControls.IsPreviousEnabled = true; MediaSystemControls.IsEnabled = false; MediaSystemControls.ButtonPressed += SystemControls_ButtonPressed; MediaSystemControls.PlaybackStatus = MediaPlaybackStatus.Closed; Player.SourceChanged += Player_SourceChanged; Player.MediaEnded += Player_MediaEnded; Player.CurrentStateChanged += Player_CurrentStateChanged; Player.VolumeChanged += Player_VolumeChanged; Player.PlaybackSession.PositionChanged += PlaybackSession_PositionChanged; Player.MediaFailed += PlayerOnMediaFailed; Player.BufferingStarted += Player_BufferingStarted; Player.BufferingEnded += Player_BufferingEnded; ; Common.GLOBAL["PERSONALFM"] = "false"; }
public async Task SetMediaTransportControlsInfo(string title) { await DispatchHelper.InvokeAsync(CoreDispatcherPriority.Normal, () => { try { if (_systemMediaTransportControls == null) { return; } LogHelper.Log("PLAYVIDEO: Updating SystemMediaTransportControls"); SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Video; _systemMediaTransportControls.IsPreviousEnabled = false; _systemMediaTransportControls.IsNextEnabled = false; //Video metadata updater.VideoProperties.Title = title; //TODO: add full thumbnail suport updater.Thumbnail = null; updater.Update(); } catch (Exception e) { LogHelper.Log(StringsHelper.ExceptionToString(e)); } }); }
async private void updateMediaOverlay() { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { SystemMediaTransportControlsDisplayUpdater mediaOverlay = systemControls.DisplayUpdater; mediaOverlay.Type = Windows.Media.MediaPlaybackType.Music; String episode, podcast, artURI; episode = ""; podcast = ""; artURI = "ms-appx:///Assets/StoreLogo.scale-400.png"; status = "false"; try { episode = await webEntryPoint.InvokeScriptAsync("eval", new string[] { getEpisodeCommand }); podcast = await webEntryPoint.InvokeScriptAsync("eval", new string[] { getPodcastCommand }); artURI = await webEntryPoint.InvokeScriptAsync("eval", new string[] { getArtCommand }); status = await webEntryPoint.InvokeScriptAsync("eval", new string[] { statusCommand }); } catch (Exception ex) { } mediaOverlay.MusicProperties.Artist = podcast; mediaOverlay.MusicProperties.Title = episode; mediaOverlay.Thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri(artURI)); mediaOverlay.Update(); SystemMediaTransportControls.GetForCurrentView().PlaybackStatus = status.Equals("true") ? MediaPlaybackStatus.Playing : MediaPlaybackStatus.Paused; }); }
private static void _mediaPlaybackList_CurrentItemChanged(MediaPlaybackList sender, CurrentMediaPlaybackItemChangedEventArgs args) { //switch (musicPlayMode) //{ // case MusicPlayMode.listLoop: // _mediaPlaybackList.ShuffleEnabled = false; // _mediaPlaybackList.AutoRepeatEnabled = true; // break; // case MusicPlayMode.songLoop: // _mediaPlaybackList.MoveTo(_mediaPlaybackList.CurrentItemIndex); // break; // case MusicPlayMode.random: // _mediaPlaybackList.ShuffleEnabled = true; // break; // case MusicPlayMode.sequence: // _mediaPlaybackList.ShuffleEnabled = false; // _mediaPlaybackList.AutoRepeatEnabled = false; // break; // default: // break; //} if (_mediaPlaybackList.Items.Count == 0) { return; } if (MediaChanged != null) { MediaChanged(sender, playList[Convert.ToInt32(_mediaPlaybackList.CurrentItemIndex)]); } if (DisplayEvent != null) { DisplayEvent(null, Visibility.Visible); } var _systemMediaTransportControls = _mediaPlayer.SystemMediaTransportControls; var timelineProperties = new SystemMediaTransportControlsTimelineProperties(); // _systemMediaTransportControls = SystemMediaTransportControls.GetForCurrentView(); // Fill in the data, using the media elements properties SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Music; updater.MusicProperties.Artist = playList[Convert.ToInt32(_mediaPlaybackList.CurrentItemIndex)].artist; updater.MusicProperties.Title = playList[Convert.ToInt32(_mediaPlaybackList.CurrentItemIndex)].title; updater.Thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri(playList[Convert.ToInt32(_mediaPlaybackList.CurrentItemIndex)].pic)); updater.Update(); timelineProperties.StartTime = TimeSpan.FromSeconds(0); timelineProperties.MinSeekTime = TimeSpan.FromSeconds(0); timelineProperties.Position = _mediaPlayer.PlaybackSession.Position; timelineProperties.MaxSeekTime = _mediaPlayer.PlaybackSession.NaturalDuration; timelineProperties.EndTime = _mediaPlayer.PlaybackSession.NaturalDuration; // Update the System Media transport Controls _systemMediaTransportControls.UpdateTimelineProperties(timelineProperties); }
// </SnippetSystemMediaTransportControlsButtonPressed> // <SnippetSystemMediaTransportControlsUpdater> async void MediaElement_MediaOpened(object sender, RoutedEventArgs e) { // Get the updater. SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; await updater.CopyFromFileAsync(MediaPlaybackType.Music, currentMediaFile); // Update the system media transport controls updater.Update(); }
public void Initialize(MediaPlayer playerInstance = null) { pI = (playerInstance != null) ? playerInstance : new MediaPlayer(); pI.AutoPlay = true; repeatState rState = repeatState.noRepeat; shuffleState sState = shuffleState.noShuffle; //pI.Source = testSong; currItemUpdater = pI.SystemMediaTransportControls.DisplayUpdater; playlistItemUpdater = pI.SystemMediaTransportControls.DisplayUpdater; }
async void UpdateUpdater(StorageFile file, SystemMediaTransportControlsDisplayUpdater updater, string[] updaterfileinfo) { try { await updater.CopyFromFileAsync(MediaPlaybackType.Music, file); updater.Update(); updaterfileinfo[0] = file.DisplayName; updaterfileinfo[1] = file.Path; } catch (Exception e) { Debug.WriteLine(e.Message); requestedGetPlaybackInfo = true; } }
public async Task ClearMediaTransportControls() { await DispatchHelper.InvokeAsync(CoreDispatcherPriority.Normal, () => { if (_systemMediaTransportControls == null) { return; } LogHelper.Log("PLAYVIDEO: Updating SystemMediaTransportControls"); SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.ClearAll(); }); }
public MusicManager(List <Song> allSongs, MainPage mp, List <string> musicFolders, List <Playlist> playlists = null, int currentList = 0, string sort = "date", bool ascending = false, int songIndex = 0, long startTime = 0, bool shuffle = false, bool repeat = true, int volume = 100) { MusicFolders = musicFolders; if (playlists == null) { allSongs = SortList(allSongs, "date", false); Playlists = new List <Playlist>(); Playlists.Add(new Playlist("All", allSongs)); } else { Playlists = playlists; } CurrentList = currentList; NowPlaying = songIndex; StartTime = new TimeSpan(startTime); firstLoad = true; SortBy = sort; Ascending = ascending; timeout = null; mainPage = mp; localStorage = mp.localStorage; updater = mp.controls.DisplayUpdater; updater.Type = MediaPlaybackType.Music; dispatcher = CoreWindow.GetForCurrentThread().Dispatcher; media = mp.media; seekBar = mp.seekBar; songsListView = mp.songsList; SetVolume(volume); Repeat = repeat; Shuffle = shuffle; if (!Repeat) { mp.repeatButton.Opacity = 0.5; } if (Shuffle) { mp.shuffleButton.Opacity = 1; } StartTimer(); Initialize(); }
private void UpdateSystemMediaTransportControl() { SystemMediaTransportControlsDisplayUpdater du = smtc.DisplayUpdater; if (du.Type != MediaPlaybackType.Music) { du.Type = MediaPlaybackType.Music; } if (du.MusicProperties.Title != CurrentSong.Title || du.MusicProperties.Artist != CurrentSong.Artist) { du.MusicProperties.Title = CurrentSong.Title; du.MusicProperties.Artist = CurrentSong.Artist; du.Update(); } }
// </SnippetSystemMediaTransportControlsButtonPressed> // </SnippetSystemMediaTransportControlsBackgroundAll> // <SnippetSystemMediaTransportControlsUpdater> async private void UpdateSongInfo() { // Get the updater. SystemMediaTransportControlsDisplayUpdater updater = systemControls.DisplayUpdater; // Get the music file and pass it to CopyFromFileAsync to extract the metadata // and thumbnail. StorageFile is defined in Windows.Storage StorageFile musicFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Music/music1.mp3")); await updater.CopyFromFileAsync(MediaPlaybackType.Music, musicFile); // Update the system media transport controls updater.Update(); }
// </SnippetSystemMediaTransportControlsUpdater> // <SnippetSystemMediaTransportControlsUpdaterManual> /// <summary> /// Shows how to update the media metadata and thumbnail manually. /// Normally you would probably retreive this info from a source such as a database /// but for this simple sample we'll just set the metadata with strings. /// </summary> void UpdateSongInfoManually() { // Get the updater. SystemMediaTransportControlsDisplayUpdater updater = systemControls.DisplayUpdater; // Music metadata. updater.MusicProperties.AlbumArtist = "artist"; updater.MusicProperties.AlbumArtist = "album artist"; updater.MusicProperties.Title = "song title"; // Set the album art thumbnail. // RandomAccessStreamReference is defined in Windows.Storage.Streams updater.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Music/music1_AlbumArt.jpg")); // Update the system media transport controls. updater.Update(); }
private void MediaElement_MediaOpened(object sender, RoutedEventArgs e) { ((MediaElement)sender).Position = m_Position; Episode episode = NowPlaying; if (episode != null) { SystemMediaTransportControlsDisplayUpdater updater = SystemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Music; if (episode.Title != null) { updater.MusicProperties.Title = episode.Title; } updater.Update(); SystemMediaTransportControls.IsNextEnabled = true; SystemMediaTransportControls.IsPreviousEnabled = true; } }
/// <summary> /// 播放 /// </summary> void Play() { if (isRunning) { currentPlayer.Play(); if (isFirstPlaying) { // 更新系統多媒體控制界面的顯示內容 SystemMediaTransportControlsDisplayUpdater displayUpdater = mdcontrol.DisplayUpdater; // 顯示型態為音樂 displayUpdater.Type = MediaPlaybackType.Music; // 設定顯示的字段值 displayUpdater.MusicProperties.Artist = "戴嬈"; displayUpdater.MusicProperties.Title = "我愛我家"; // 更新顯示 displayUpdater.Update(); } } }
public void Initialize() { #pragma warning disable CS0618 player = BackgroundMediaPlayer.Current.SystemMediaTransportControls; #pragma warning restore CS0618 player.ButtonPressed += Player_ButtonPressed; updater = player.DisplayUpdater; player.IsPlayEnabled = true; player.IsPauseEnabled = true; player.IsStopEnabled = true; player.IsPreviousEnabled = true; player.IsNextEnabled = true; Winamp.StatusChanged += Winamp_StatusChanged; Winamp.SongChanged += Winamp_SongChanged; SetSong(Winamp.CurrentSong); }
private void GetSong(Song song) { // 设置播放歌曲信息 SongName = song.OriginName; VocalName = song.VocalName; SongImage = song.assestLink.CoverImg; SongId = song.Id; songObject = song; // 启用 Button 们 systemMediaTransportControls.IsEnabled = true; systemMediaTransportControls.IsPlayEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; systemMediaTransportControls.IsPreviousEnabled = true; systemMediaTransportControls.IsNextEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; // 获取更新对象 SystemMediaTransportControlsDisplayUpdater updater = systemMediaTransportControls.DisplayUpdater; // 设置媒体信息 updater.Type = MediaPlaybackType.Music; updater.MusicProperties.Artist = song.VocalName; updater.MusicProperties.AlbumArtist = song.VocalName; updater.MusicProperties.Title = song.OriginName; // 设置图片 updater.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(song.assestLink.CoverImg)); // 更新 updater.Update(); // Log Log.WriteLine("[Player]载入歌曲 Id: " + song.Id, Level.Info); // 载入媒体 LoadComplete = false; var mediaSource = MediaSource.CreateFromUri(new Uri(song.assestLink.Music)); mediaSource.OpenOperationCompleted += MediaSource_OpenOperationCompleted; player.Source = mediaSource; Log.WriteLine("[Player]设置播放源为: " + song.assestLink.Music, Level.Info); // 触发缓冲进度修改和歌曲改变事件 SongChanged(this, null); BufferingProgressChanged(mediaPlayBackSession, null); }
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(); }
public async Task SetMediaTransportControlsInfo(string artistName, string albumName, string trackName, string albumUri) { await DispatchHelper.InvokeAsync(CoreDispatcherPriority.Normal, () => { try { if (_systemMediaTransportControls == null) { return; } _systemMediaTransportControls.PlaybackStatus = MediaPlaybackStatus.Playing; _systemMediaTransportControls.IsEnabled = true; _systemMediaTransportControls.IsPauseEnabled = true; _systemMediaTransportControls.IsPlayEnabled = true; SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Music; // Music metadata. updater.MusicProperties.AlbumArtist = artistName; updater.MusicProperties.Artist = artistName; updater.MusicProperties.Title = trackName; // Set the album art thumbnail. // RandomAccessStreamReference is defined in Windows.Storage.Streams if (albumUri != null && !string.IsNullOrEmpty(albumUri)) { updater.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(albumUri)); } // Update the system media transport controls. updater.Update(); } catch (Exception exception) { } }); }
public async void RefreshGUI(string Title, string Artist, BitmapImage Cover, bool isMusic, StorageFile file) { mediaPlayer.Position = TimeSpan.FromSeconds(0); if (isMusic) { TitleHolder.Text = Title; ArtistHolder.Text = Artist; CoverHolder.Source = Cover; BGImage.ImageSource = Cover; mediaPlayer.Visibility = Visibility.Collapsed; SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; await updater.CopyFromFileAsync(MediaPlaybackType.Music, file); // Update the system media transport controls updater.Update(); } else { TitleHolder.Text = ""; ArtistHolder.Text = ""; CoverHolder.Source = null; BGImage.ImageSource = null; mediaPlayer.Visibility = Visibility.Visible; SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; await updater.CopyFromFileAsync(MediaPlaybackType.Video, file); updater.VideoProperties.Title = Title; // Update the system media transport controls updater.Update(); } }
private void MediaPlaybackList_CurrentItemChanged(MediaPlaybackList sender, CurrentMediaPlaybackItemChangedEventArgs args) { if (mediaPlaybackList.Items.Count == 0) { return; } if (args.NewItem == null) { playInfo = null; loading = true; return; } if (musicPlayMode == MusicPlayMode.Single) { SetMusicPlayMode(false); } //重置播放信息 bufferingProgress = 0; this.totalDuration = 0; this.position = 0; this.durationStr = "00:00 / 00:00"; var songid = (int)args.NewItem.Source.CustomProperties["id"]; playInfo = playList.FirstOrDefault(x => x.songid == songid); //SettingHelper.StorageHelper.Save<PlayModel>("playInfo", playInfo); //显示试听信息 if (playInfo.is_preview) { DispatcherHelper.ExecuteOnUIThreadAsync(() => { Utils.ShowMessageToast("试听中,会员可以听完整哦", new List <MyUICommand> { new MyUICommand(UserHelper.isLogin?"开通会员":"登录", async(toast, command) => { if (UserHelper.isLogin) { await Windows.System.Launcher.LaunchUriAsync(new Uri("https://account.bilibili.com/account/big")); } else { await Utils.ShowLoginDialog(); } }), new MyUICommand("关闭", (toast, command) => { (toast as MessageToast).Close(); }), }); }); } foreach (var item in playList) { DispatcherHelper.ExecuteOnUIThreadAsync(() => { item.select = false; item.color = (SolidColorBrush)App.Current.Resources["COLOR_Foreground"]; }); } DispatcherHelper.ExecuteOnUIThreadAsync(() => { playInfo.select = true; playInfo.color = (SolidColorBrush)App.Current.Resources["COLOR_Main"]; }); var _systemMediaTransportControls = mediaPlayer.SystemMediaTransportControls; SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater; updater.Type = MediaPlaybackType.Music; updater.MusicProperties.Artist = playInfo.author; updater.MusicProperties.Title = playInfo.title; updater.Thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri(playInfo.pic)); updater.Update(); loading = false; }