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