Windows SystemMediaTransportControls-设置属性不起作用

Windows SystemMediaTransportControls-设置属性不起作用,windows,uwp,windows-10-universal,background-audio,Windows,Uwp,Windows 10 Universal,Background Audio,我正在尝试在后台音频应用程序中使用SystemMediaTransportControls。我正在使用MediaPlayer类来播放音频。设置音乐属性、缩略图似乎一切正常,但设置控制按钮(即“下一步”按钮)根本不起作用。我的用例有些独特,因为我无法一次获得完整的播放列表,下一个曲目只能通过内部方法调用获得 以下是我正在做的: 此部分工作正常,音量控制正确显示所有音频信息和缩略图: var playbackItem=new MediaPlaybackItem(源代码); var displayPr

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

以下是我正在做的:

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

var playbackItem=new MediaPlaybackItem(源代码);
var displayProperties=playbackItem.GetDisplayProperties();
displayProperties.Type=Windows.Media.MediaPlaybackType.Music;
displayProperties.thumboil=RandomAccessStreamReference.CreateFromUri(新Uri(_currentTrack.AlbumArtUrl));
displayProperties.MusicProperties.AlbumArtist=displayProperties.MusicProperties.Artist=\u currentTrack.Artist;
displayProperties.MusicProperties.Title=\u currentTrack.SongTitle;
displayProperties.MusicProperties.AlbumTitle=\u currentTrack.Album;
playbackItem.CanSkip=true;
playbackItem.ApplyDisplayProperties(显示属性);
_player.Source=playbackItem;
此部件不工作,“下一步”按钮仍处于禁用状态,“记录”按钮未显示

var smtc=\u player.SystemMediaTransportControls;
smtc.ButtonPressed+=OnSMTCButtonPressed;
smtc.IsEnabled=true;
smtc.IsNextEnabled=true;
smtc.IsRecordEnabled=true;

我一直在网上寻找答案,但找不到任何有用的答案。感谢您的回答。

在UWP中,除了SMTC之外,还有一个类似的功能-要正确使用SMTC,您必须禁用它。只要说一句话:

mediaPlayer.CommandManager.IsEnabled = false;
一旦你初始化了播放器,它就可以工作了。有关更多信息,请访问:

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


在UWP中,除了SMTC之外,还有类似的东西-要正确使用SMTC,您必须禁用它。只要说一句话:

mediaPlayer.CommandManager.IsEnabled = false;
一旦你初始化了播放器,它就可以工作了。有关更多信息,请访问:

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


很好用-谢谢!如果你决定走手动控制SMTC的道路,你还需要处理应用程序进入后台时发生的事情。我找到了通过CommandManager在SMTC中启用控件的另一种方法:设置CommandManager.NextBehavior.EnablingRule=MediaCommandEnableingRule.Always,并处理CommandManager下一个接收到的事件。效果很好-谢谢!如果你决定走手动控制SMTC的道路,你还需要处理应用程序进入后台时发生的事情。我找到了通过CommandManager在SMTC中启用控件的另一种方法:设置CommandManager.NextBehavior.EnablingRule=MediaCommandEnableingRule.Always,并处理CommandManager中接收到的下一个事件。