SystemMediaTransportControls - 设置属性不起作用

时间:2016-10-10 01:54:14

标签: windows uwp windows-10-universal background-audio

我试图在后台音频应用中使用SystemMediaTransportControls。我正在使用MediaPlayer类播放音频。设置音乐属性,缩略图似乎工作正常,但设置控制按钮(即"下一个"按钮)根本不起作用。我的用例有点独特,因为我无法立即获得完整的播放列表,下一首曲目只能通过内部方法调用获得。

这是我正在做的事情:

这部分工作正常,音量控制正确显示所有音频信息和缩略图:

({Name=John; date=20070506; type=5; value= 249;}, 
{Name=Tracy; date=20040506; type=2; value = 237; },
...)

这部分不起作用," Next"按钮仍然被禁用,"记录"按钮未显示。

var playbackItem = new MediaPlaybackItem(source);
var displayProperties = playbackItem.GetDisplayProperties();
displayProperties.Type = Windows.Media.MediaPlaybackType.Music;
displayProperties.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(_currentTrack.AlbumArtUrl));
displayProperties.MusicProperties.AlbumArtist = displayProperties.MusicProperties.Artist = _currentTrack.Artist;
displayProperties.MusicProperties.Title = _currentTrack.SongTitle;
displayProperties.MusicProperties.AlbumTitle = _currentTrack.Album;
playbackItem.CanSkip = true;
playbackItem.ApplyDisplayProperties(displayProperties);
_player.Source = playbackItem;

我一直试图在网上寻找答案但却找不到任何有用的东西。任何答案都表示赞赏。

1 个答案:

答案 0 :(得分:0)

在UWP中,除了SMTC之外,还有类似CommandManager的东西 - 要正确使用SMTC,你必须禁用它。就行了:

mediaPlayer.CommandManager.IsEnabled = false;

初始化播放器后,它应该可以正常工作。您可以在MSDN找到更多信息:

  

如果您使用MediaPlayer播放媒体,则可以通过访问MediaPlayer.SystemMediaTransportControls属性来获取SystemMediaTransportControls类的实例。如果要手动控制SMTC,则应通过将CommandManager.IsEnabled属性设置为false来禁用MediaPlayer提供的自动集成。