1
A
回答
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在後臺任務中。
你必須支持兩個(前臺+後臺)
相關問題
- 1. UWP協議激活
- 2. 如何改變列表視圖激活顏色xamarin形式UWP
- 3. 如何激活ScrollBar?
- 4. 如何激活DJANGO.CORE.CONTEXT_PROCESSORS.REQUEST
- 5. 如何激活VsVim?
- 6. 如何在Bash腳本中激活virtualenv激活
- 7. 如何激活layouts的adjustsize()
- 8. 如何激活pycharm中的風箏?
- 9. 如何激活表中的bootstrap datepicker?
- 10. 如何激活sql中的描述?
- 11. 如何激活wildfly中的JDBC日誌
- 12. 如何激活flex中的click事件?
- 13. 如何跳過rails中的激活?
- 14. 如何激活QListwidget中的項目?
- 15. 如何重新激活JRE8u60中的TLS1.0
- 16. 如何激活此表中的排序?
- 17. 如何激活lighttpd中的網站
- 18. 如何激活MC67中的紅燈
- 19. MonoTouch激活/重新激活
- 20. 激活/取消激活virtualenv
- 21. 停止激活激活
- 22. 如何讓gtk.Window()激活?
- 23. 如何激活鏈接(jQuery)?
- 24. xavier_initializer()如何知道激活?
- 25. 如何激活div標記
- 26. 如何用wampserver激活mysqli?
- 27. 如何激活Word文檔?
- 28. Aptana如何激活預覽
- 29. 如何阻止baffle.js激活
- 30. 如何激活MSSQL擴展?
喜按下事件的按鍵,就是這個方法仍然在2個過程模型的工作背景音樂?因爲在我的情況下,系統播放器控件在應用程序轉到後臺時無法工作,即使音頻仍在播放。在爲背景音頻啓動一個流程模型後,我們是否需要更改任何內容? ps-考慮到我無法將我的整個應用程序從2個過程模型切換到單個過程模型。 *幫助讚賞* –
這應該仍然有效。這兩個流程模型已被棄用,但仍然有效。你應該分享你做了什麼來進一步調查。有一些很好的解釋[這裏](https://blogs.windows.com/buildingapps/2016/01/13/the-basics-of-background-audio/) – Vincent