我使用我的应用程序的BackgroundMediaPlayer在后台播放音频。现在我看到了这些按钮:

如何激活它们?
发布于 2016-06-13 20:30:19
为了使任务栏中的媒体控件正常工作,您需要从前台应用程序和后台任务加载和配置SystemMediaTransportControls。
在前台应用程序中,您应该有以下代码:
var smtc = SystemMediaTransportControls.GetForCurrentView();
smtc.ButtonPressed += smtc_ButtonPressed;
smtc.PropertyChanged += smtc_PropertyChanged;
smtc.IsEnabled = true;
smtc.IsPauseEnabled = true;
smtc.IsPlayEnabled = true;
smtc.IsNextEnabled = true;
smtc.IsPreviousEnabled = true;在后台任务中,您应该有:
smtc = BackgroundMediaPlayer.Current.SystemMediaTransportControls;
smtc.ButtonPressed += smtc_ButtonPressed;
smtc.PropertyChanged += smtc_PropertyChanged;
smtc.IsEnabled = true;
smtc.IsPauseEnabled = true;
smtc.IsPlayEnabled = true;
smtc.IsNextEnabled = true;
smtc.IsPreviousEnabled = true;请注意,获取控件实例的API是不同的:
前台app为SystemMediaTransportControls.GetForCurrentView(),后台任务为BackgroundMediaPlayer.Current.SystemMediaTransportControls。
你必须支持两个(前景+背景)中的按钮按下事件
发布于 2016-06-13 20:00:36
这是System Media Transport Controls,您应该添加代码来处理click事件。
以下是官方示例:
public MainPage()
{
this.InitializeComponent();
// Hook up app to system transport controls.
systemMediaControls = SystemMediaTransportControls.GetForCurrentView();
systemMediaControls.ButtonPressed += SystemControls_ButtonPressed;
// Register to handle the following system transpot control buttons.
systemMediaControls.IsPlayEnabled = true;
systemMediaControls.IsPauseEnabled = true;
}
async void SystemControls_ButtonPressed(SystemMediaTransportControls sender,
SystemMediaTransportControlsButtonPressedEventArgs args)
{
switch (args.Button)
{
case SystemMediaTransportControlsButton.Play:
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
mediaElement.Play();
});
break;
case SystemMediaTransportControlsButton.Pause:
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
mediaElement.Pause();
});
break;
default:
break;
}
}https://stackoverflow.com/questions/37786261
复制相似问题