2016-06-13 81 views

回答

0

這就是System Media Transport Controls,你應該添加代碼來處理點擊事件。
下面是官方樣片:

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; 
    } 
} 
1

爲了從任務欄使媒體控制工作,你需要加載和從前臺應用程序和後臺任務配置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是不一樣:
SystemMediaTransportControls.GetForCurrentView() 在前臺應用程序和BackgroundMediaPlayer.Current.SystemMediaTransportControls在後臺任務中。

你必須支持兩個(前臺+後臺)

+0

喜按下事件的按鍵,就是這個方法仍然在2個過程模型的工作背景音樂?因爲在我的情況下,系統播放器控件在應用程序轉到後臺時無法工作,即使音頻仍在播放。在爲背景音頻啓動一個流程模型後,我們是否需要更改任何內容? ps-考慮到我無法將我的整個應用程序從2個過程模型切換到單個過程模型。 *幫助讚賞* –

+0

這應該仍然有效。這兩個流程模型已被棄用,但仍然有效。你應該分享你做了什麼來進一步調查。有一些很好的解釋[這裏](https://blogs.windows.com/buildingapps/2016/01/13/the-basics-of-background-audio/) – Vincent