我正在尝试使用SMTC叠加层,该叠加层在Windows弹出音量滑块旁边的左上角显示当前音乐信息。我在Microsoft网站上尝试了这些示例,但仍然无法设置SMTC弹出窗口。
已经在其网站上尝试了Microsoft的示例进行文档记录。 关注了youtube视频,该视频解释了相关主题,但无效。 我几乎是C#的初学者,因此对类和方法来说还很新。
using System;
using Windows.Media;
using Windows.Media.Core;
using Windows.Media.Playback;
using Windows.Storage.Streams;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace systemmedoa
{
public sealed partial class MainPage : Page
{
private MediaPlayer _mediaPlayer;
private SystemMediaTransportControls _systemMediaTransportControls;
public MainPage()
{
this.InitializeComponent();
_mediaPlayer = new MediaPlayer();
_mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/song.mp3"));
_systemMediaTransportControls = MediaPlaybackItem.Get
_mediaPlayer.CommandManager.IsEnabled = false;
// Get the updater.
SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater;
_systemMediaTransportControls.IsEnabled = true;
// Music metadata.
updater.Type = Windows.Media.MediaPlaybackType.Music;
updater.MusicProperties.Artist = "artist";
updater.MusicProperties.AlbumArtist = "album artist";
updater.MusicProperties.Title = "song title";
_systemMediaTransportControls.IsPlayEnabled = true;
_systemMediaTransportControls.IsPauseEnabled = true;
_systemMediaTransportControls.IsPreviousEnabled = true;
_systemMediaTransportControls.IsRewindEnabled = true;
// Set the album art thumbnail.
// RandomAccessStreamReference is defined in Windows.Storage.Streams
updater.Thumbnail =
RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/albumart.png"));
// Update the system media transport controls.
updater.Update();
_systemMediaTransportControls.DisplayUpdater.Update();
_mediaPlayer.Play();
_systemMediaTransportControls.PlaybackStatus = MediaPlaybackStatus.Playing;
}
}
}
与正常情况一样,当我使用音量键时,音频会在后台播放,但不会在Windows音量滑块弹出窗口中显示音乐信息,有点像Spotify的“使用媒体键时显示桌面叠加层”。
答案 0 :(得分:0)
您的帖子中遗漏了很多东西,因此我认为您首先需要了解以下两篇文章:
因此,让我们检查您的代码,有一些基本问题:
您只想与SMTC集成还是自定义自己的SMTC?如果您想自定义SMTC,为什么在您的代码中看不到以下内容?
CommandManager.IsEnabled = false;
此处的更新程序将更新元数据,但它会显示在您锁定屏幕上的位置。它实际上没有做您想要的事情(将信息放在音量滑块附近)
仅借助默认SMTC进行自定义的一种可能方法是:
<StackPanel>
<Button Click="Button_Click" Content="test"/>
<Grid>
<MediaPlayerElement x:Name="mediaplayerelement"
AreTransportControlsEnabled="True" />
<TextBlock Text="artist" Width="50" Height="30" HorizontalAlignment="Left" Margin="62,48,0,0"/>
</Grid>
</StackPanel>