Windows phone 7 用户同意停止播放音频

Windows phone 7 用户同意停止播放音频,windows-phone-7,windows-phone-7.1,xna-4.0,Windows Phone 7,Windows Phone 7.1,Xna 4.0,Windows Phone 7.5/Silverlight应用程序 如果用户正在手机上播放音乐/收音机,并且他们试图启动我的应用程序,我想给用户一个选项来停止当前播放的选项 工作正常: 弹出的消息显示良好。当我选择取消时,弹出窗口关闭,音乐继续播放,我的应用程序正常启动/工作 问题: 如果我选择“确定”,即停止手机上当前播放的音乐,音乐将停止,但同时我的应用程序也将退出 你知道我做错了什么吗 这是我正在使用的代码。我在启动时将此方法称为: private void CheckAudio()

Windows Phone 7.5/Silverlight应用程序

如果用户正在手机上播放音乐/收音机,并且他们试图启动我的应用程序,我想给用户一个选项来停止当前播放的选项

工作正常: 弹出的消息显示良好。当我选择取消时,弹出窗口关闭,音乐继续播放,我的应用程序正常启动/工作

问题: 如果我选择“确定”,即停止手机上当前播放的音乐,音乐将停止,但同时我的应用程序也将退出

你知道我做错了什么吗

这是我正在使用的代码。我在启动时将此方法称为:

private void CheckAudio()
        {
            if (FMRadio.Instance.PowerMode == RadioPowerMode.On)
            {
                MessageBoxResult Choice;
                Choice = MessageBox.Show("For better user experience with this application it is recommended you stop other audio applications. Do you want to stop the radio?", "Radio is currently playing!", MessageBoxButton.OKCancel);
                if (Choice == MessageBoxResult.OK)
                {
                    FMRadio.Instance.PowerMode = RadioPowerMode.Off;
                }
            }
            if (MediaPlayer.State == MediaState.Playing)
            {
                MessageBoxResult Choice;
                Choice = MessageBox.Show("For better user experience with this application it is recommended you stop other audio/video applications. Do you want to stop the MediaPlayer?", "MediaPlayer is currently playing!", MessageBoxButton.OKCancel);
                if (Choice == MessageBoxResult.OK)
                {
                    MediaPlayer.Stop();
                }
            }
        }
更新:
我在下面发布了我的解决方案。如果我做错了什么,一定要告诉我。

我发现抛出了以下错误:

FrameworkDispatcher.Update尚未调用。有规律的 FrameworkDispatcher。对于fire and forget,更新调用是必需的 声音效果和框架事件,以正确运行

所以我添加了这段代码,现在它运行良好。现在,单击“确定”,音乐播放器停止,我的应用程序正常启动。我从App.xaml.cs中的InitializeComponent调用SetupTimer方法

private GameTimer gameTimer; 

private void SetupTimer()
{

gameTimer = new GameTimer();
gameTimer.UpdateInterval = TimeSpan.FromMilliseconds(33);

// Call FrameworkDispatcher.Update to update the XNA Framework internals.
gameTimer.Update += new EventHandler<GameTimerEventArgs>(gameTimer_Update); //delegate { try { FrameworkDispatcher.Update(); } catch { } };

// Start the GameTimer running.
gameTimer.Start();

// Prime the pump or we'll get an exception.
FrameworkDispatcher.Update();

}

void gameTimer_Update(object sender, GameTimerEventArgs e)
{
try { FrameworkDispatcher.Update(); }
catch { }
}
私人游戏计时器游戏计时器;
私有void SetupTimer()
{
gameTimer=新gameTimer();
gameTimer.UpdateInterval=TimeSpan.From毫秒(33);
//调用FrameworkDispatcher.Update更新XNA框架内部。
gameTimer.Update+=neweventhandler(gameTimer_Update);//委托{try{FrameworkDispatcher.Update();}catch{};
//启动游戏计时器运行。
gameTimer.Start();
//给泵充油,否则我们会有异常。
FrameworkDispatcher.Update();
}
void gameTimer_更新(对象发送方,GameTimerEventArgs e)
{
请尝试{FrameworkDispatcher.Update();}
捕获{}
}

如果有人发现上述问题,请告诉我。谢谢。

如果您解决了您的问题,您应该发布您的解决方案并标记为帮助其他人的答案。很遗憾,经过长时间的搜索,我只找到了一个解决方案+1.