2017-06-14 49 views
0

我創建了一個使用HTML5 Webradio流的UWP應用程序。 一切工作正常,但現在我想添加曲目和藝術家信息到MediaPlayer元素。 如果用戶在開始屏幕上鎖定了他的設備,則會顯示此信息。 正確顯示用戶選擇流的第一首曲目。但是我無法在不重新啓動Stream的情況下更新此信息。實時更新MediaItemDisplayProperties

MediaItemDisplayProperties mdp = _mediaPlaybackItem.GetDisplayProperties(); 
mdp.Type = Windows.Media.MediaPlaybackType.Music; 
mdp.MusicProperties.Artist = "TBA Artist"; 
mdp.MusicProperties.Title = "TBA Title"; 
mdp.Thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(MainPage.Current.CurrentStream.PreviewImageUri); 
_mediaPlaybackItem.ApplyDisplayProperties(mdp); 
_mediaPlayer.Source = mpItem; 
_mediaPlayer.Play(); 

如果我藉此行到我的藝術家/標題刷新方法,我也必須重新設置_mediaPlayer的來源,這將導致以播放音樂暫停。

有沒有人有一個想法如何解決這個問題?或者給我任何建議,我可以看得更遠。

感謝克里斯

回答

1

如果你要更新的藝術家/標題,你應該能夠使用System​Media​Transport​Controls​Display​Updater類,它提供的功能來更新顯示在SystemMediaTransportControls的音樂信息。

我們可以將藝術家/標題設置爲SystemMediaTransportControlsDisplayUpdater.MusicProperties屬性。然後我們可以使用SystemMediaTransportControlsDisplayUpdater.Update方法更新當前正在播放的媒體的元數據。

使用SystemMediaTransportControlsDisplayUpdater類更新傳輸控件顯示的媒體信息,例如歌曲標題或當前正在播放的媒體項目的專輯封面。使用SystemMediaTransportControls.DisplayUpdater屬性獲取此類的實例。如果您的場景需要它,可以通過設置DisplayUpdater類公開的MusicProperties,ImageProperties或VideoProperties對象的值手動更新系統媒體傳輸控件顯示的元數據。

例如:

SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater;  
updater.MusicProperties.Artist = "artist"; 
updater.MusicProperties.AlbumArtist = "album artist"; 
updater.MusicProperties.Title = "song title";  
updater.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Music/music1_AlbumArt.jpg"));  
updater.Update(); 
+0

謝謝,這個偉大的工程。 只有一個更正。我不得不設置updater.Type = MediaPlaybackType.Music,因爲媒體元素有時會崩潰。音樂進一步發揮了作用,但鎖定設備上沒有任何互動。 (沒有看到MediaPlayer元素) – TiMeJuMp