2011-08-11 28 views
9

Một trong các ứng dụng của tôi gần đây đã bị lỗi chứng nhận vì: "ứng dụng của tôi dừng nhạc nền mà không yêu cầu người dùng khi muốn phát nhạc".Cách phát hiện xem có âm thanh nào khác đang phát trong nền không? (Windows Phone 7)

Bây giờ câu hỏi đặt ra là: làm cách nào chúng tôi có thể phát hiện xem có bất kỳ nhạc nào phát trong nền không?

Trân

+2

Tôi nghĩ bạn đang thiếu mệnh đề "không hỏi". Đừng tự động thoát khỏi Aretha, hãy để người dùng đặt ngón tay lên đầu tiên. Đi Aretha! nút, ý tôi là. –

+0

@HansPassant bằng cách nhấn vào nút Phát trong ứng dụng = người dùng đồng ý chơi? – onmyway133

Trả lời

7
using Microsoft.Xna.Framework.Media; 

...

if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing) 
    { 
      .... 
    } 
+0

Tôi đã nghĩ về mọi thứ trừ một thuộc tính tĩnh trên MediaPlayer, thnx :) –

6

Bạn cần phải kiểm tra tài sản MediaPlayer.GameHasControl.

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.mediaplayer.gamehascontrol.aspx

MediaPlayer.State sẽ được chơi ngay cả khi bạn đang chơi nhạc. GameHasControl xác định xem nhạc đã được bắt đầu từ ứng dụng của bạn hay chưa hoặc một ứng dụng khác có đang phát trước khi ứng dụng của bạn bắt đầu hay không.

Bạn có thể nhận được giá trị trong OnActivated ...

protected override void OnActivated(object sender, EventArgs args) 
{ 
    base.OnActivated(sender, args); 


    // cache music and trial mode values 
    Globals.GameHasMusicControl = MediaPlayer.GameHasControl; 

} 

Và sử dụng giá trị trong suốt trò chơi của bạn để xác định có hay không bạn nên chơi âm nhạc.

+0

GameHasControl luôn là false: ( – onmyway133

Các vấn đề liên quan