我已经创建了一个UWP应用程序,它使用HTML5网络广播流。一切都很好,但现在我想向MediaPlayer元素添加跟踪和艺术家信息。如果用户将设备锁定在启动屏幕上,则将显示此信息。如果用户选择一个流,则正确地显示第一个音轨。但是,如果不重新启动Stream,我就无法更新这些信息。
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源,这将导致播放音乐的暂停。
有谁知道如何解决这个问题吗?或者给出任何我可以进一步研究的建议。
谢谢克里斯
发布于 2017-06-15 06:58:09
如果您想更新“艺术家/标题”,您应该能够使用SystemMediaTransportControlsDisplayUpdater类,它提供了更新显示在SystemMediaTransportControls上的音乐信息的功能。
我们可以将“艺术家”/“标题”设置为SystemMediaTransportControlsDisplayUpdater.MusicProperties属性。然后,我们可以使用SystemMediaTransportControlsDisplayUpdater.Update方法更新当前播放媒体的元数据。
使用SystemMediaTransportControlsDisplayUpdater类更新传输控件显示的媒体信息,例如当前播放的媒体项的歌曲标题或专辑艺术。使用SystemMediaTransportControls.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();https://stackoverflow.com/questions/44541276
复制相似问题