2013-05-28 80 views
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以外的媒體有其他方式流媒體,也請提出建議。 希望儘快回覆。感謝所有提前。

+0

請有人回答這個問題。由於這個,我陷入了深重的困境。 – Akshat

回答