2
我正在開發一個應用程序,通過流播放在線收音機。我已經使用了MediaElement。但問題是播放器不在後臺播放。我的意思是,只要我點擊手機上的「開始」或「後退」按鈕,流媒體以及音頻就會停止。 我沒有在任何設備上測試過,所以請告訴我它是否在模擬器中發生,但不是在設備上發生。這裏是我的代碼..如何在後臺播放MediaElement。?
private void Play()
{
if (mediaElement == null || mediaElement.CurrentState != MediaElementState.Playing)
{
if (SystemTray.ProgressIndicator == null)
SystemTray.ProgressIndicator = new ProgressIndicator();
SystemTray.ProgressIndicator.IsIndeterminate = true;
SystemTray.ProgressIndicator.IsVisible = true;
SystemTray.ProgressIndicator.Text = "Connecting to *********...";
mediaStream = new ********.RadioStream(uri);
mediaStream.StreamSetupComplete += (o, e) =>
{
Dispatcher.BeginInvoke(() =>
{
if (mediaElement != null)
{
LayoutRoot.Children.Remove(mediaElement);
}
mediaElement = new MediaElement();
mediaElement.Volume = 1.0;
LayoutRoot.Children.Add(mediaElement);
mediaElement.SetSource(mediaStream);
SystemTray.ProgressIndicator.IsVisible = false;
});
};
}
}
我想知道的步驟,使這個在後臺播放。至少當用戶按下「開始」按鈕時,音頻流不應該停止。
另外一個更問題我已經是我已經添加的ApplicationBarMenu其中我有一個「退出」按鈕。只要用戶點擊該按鈕,流應該停止,並且應用程序應該自行關閉。我無法以編程方式關閉應用程序。代碼如下給予..
void exit_Click(object sender, EventArgs e)
{
if (playing)
{
MessageBoxResult Choice;
Choice = MessageBox.Show("Media is currently playing, do you want to stop it?", "Stop Player", MessageBoxButton.OKCancel);
if (Choice == MessageBoxResult.OK)
{
ImageBrush brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri(@"Images/play.png", UriKind.Relative));
play.Background = brush;
Stop();
playing = false;
try
{
// if (NavigationService.CanGoBack)
// {
// while (NavigationService.RemoveBackEntry() != null)
// {
// NavigationService.RemoveBackEntry();
// }
// }
}
catch
{
}
}
else
{
}
}
}
請幫我正確的代碼。即使MediaElement以外的媒體有其他方式流媒體,也請提出建議。 希望儘快回覆。感謝所有提前。
請有人回答這個問題。由於這個,我陷入了深重的困境。 – Akshat