我正在使用MedialPlayer控件在我的應用程序中播放聲音效果,如解釋here所述。聲音是在應用程序中發生某些事情時播放「背景」的短音效,用戶不應該看到任何類型的媒體播放控制。如何在UWP中隱藏MediaPlayer控件
代碼是相當簡單的,看起來是這樣的:
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.Source = MediaSource.CreateFromUri(pathUri);
mPlayer.Play();
這種運作良好,除了,當用戶按下鍵盤上的音量控制按鈕,旁邊會出現音量控制和一個小型媒體播放器控制用戶可以按播放鍵再次播放最後一個聲音(見圖)。我想隱藏這個。用戶不應該看到這個或者能夠重放聲音。
問題14578867提供的解決方案不起作用。答案中提到的屬性不存在(例如,IsPlayPauseVisible,uImode,IsInteractive)。我嘗試使用SystemMediaTransportControls中的類似屬性,但它沒有區別。我認爲這些是出於應用程序(我沒有)的控制,而不是我想要隱藏的「操作系統媒體控制」。
mPlayer.SystemMediaTransportControls.IsEnabled = false;
mPlayer.SystemMediaTransportControls.IsPlayEnabled = false;
如何禁用/隱藏此功能?
這裏是一個一步一步的指導,複製問題:
- 創建一個新的Windows通用的Visual C#應用空白
- 將按鈕添加到MainPage.xaml中和MP3文件,以資產
- 粘貼下面的代碼到MainPage.cs
- 運行應用程序,單擊按鈕
- 在鍵盤上按下音量提高按鈕
- 使用音量控制旁邊的播放按鈕觀看「媒體控制」(請參見上圖)。
按播放鍵再次播放聲音。如果你很快,你也可以暫停播放。 SystemMediaTransportControls屬性沒有區別。
using Windows.Media.Core;
using Windows.Media.Playback;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Input;
namespace App2
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void Button_Tapped(object sender, TappedRoutedEventArgs e)
{
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.Source = MediaSource.CreateFromUri(new System.Uri("ms-appx:///Assets/clap.mp3"));
mPlayer.SystemMediaTransportControls.IsPlayEnabled = false;
mPlayer.SystemMediaTransportControls.IsEnabled = false;
mPlayer.Play();
}
}
}
我已經測試你的代碼,它可以隱藏''通過mPlayer.SystemMediaTransportControls.IsEnabled' SystemMediaTransportControls'。如果你想禁用'SystemMediaTransportControls'中的播放按鈕,你應該能夠將'IsPauseEnabled','IsStopEnabled'和'IsPlayEnabled'設置爲false。 –
@ JaydenGu-MSFT我已經添加了一步一步的指南來複制這個問題。 – under