【问题标题】:Update MediaItemDisplayProperties on the fly即时更新 MediaItemDisplayProperties
【发布时间】:2017-06-14 09:51:37
【问题描述】:

我创建了一个使用 HTML5 Webradio 流的 UWP 应用程序。 一切正常,但现在我想将曲目和艺术家信息添加到 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 的来源,这将导致播放音乐暂停。

有人知道如何解决这个问题吗?或者给我可以进一步研究的任何建议。

谢谢克里斯

【问题讨论】:

    标签: stream uwp media-player


    【解决方案1】:

    如果你想更新 Artist/Title,你应该可以使用System​Media​Transport​Controls​Display​Updater 类,它提供了更新显示在 SystemMediaTransportControls 上的音乐信息的功能。

    我们可以将 Artist/Title 设置为 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();
    

    【讨论】:

    • 谢谢,这很好用。只有一次更正。我不得不设置 updater.Type = MediaPlaybackType.Music 因为有时媒体元素会崩溃。音乐播放得更远了,但在我锁定的设备上没有互动。 (没有看到 MediaPlayer 元素)
    猜你喜欢
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2012-11-16
    • 2013-04-30
    相关资源
    最近更新 更多