微软地铁 - 后台音频流应用的认证失败



我提交了一个后台音频应用程序进行认证,但由于两个原因而失败,我无法弄清楚原因。

原因一:

此应用程序无法正确响应至少一个播放, 暂停或播放/暂停事件。

我知道需要满足PlayPauseStopPlayPauseMediaControl事件,并且已经在代码中这样做了(并在平板电脑和本地设备上进行了测试)。但是,由于停止媒体流并重新启动它需要比预期更长的时间,因此我对"暂停"和"停止"都使用了MediaElement.Pause()

我读了另一篇在认证阶段遇到类似问题的帖子。有人建议改用MediaElement.PlaybackRate = 0;。但是,这对于长时间暂停并不理想,因为流不会继续前进。

想知道的是我这样做的方式是否正确?对于我所有的MediaControl事件,我也确保正确设置了MediaControl.IsPlaying属性。

此外,它失败的另一个原因是:

应用在 Windows ACK 中的性能测试中失败。请参阅以下链接 有关更多信息:测试用例已运行: http://msdn.microsoft.com/en-us/library/windows/apps/hh920274.aspx

我已经针对 ACK 运行了我的应用程序,一切都通过了。我唯一能想到的是,当按下硬件(或屏幕上)媒体控制暂停按钮时,该应用程序不会进入suspend mode。我在 App_Suspending 事件中放置了一个调试器,但它从未命中那里。

由于描述太模糊,我不确定这是否是问题所在。但如果是这种情况,我能知道如何强制应用进入挂起模式吗?我试着在Window.Current班和Application.Current班上寻找,但无济于事。

谢谢!

对于您的第一个问题,请确保您的媒体元素已准备好使用以下方法播放:

while (CurrentTrack.CurrentState == MediaElementState.Opening || CurrentTrack.CurrentState == MediaElementState.Buffering)
{
   await Task.Delay(100);
}
CurrentTrack.Play();

此外,您必须在视图卸载时停止媒体元素。

问候。

在发布该应用程序近 10 次尝试后,我终于找到了问题的根源,这要归功于 Microsoft 的人们的一些猜测工作。

我的应用将在应用启动后自动启动MediaElement流式传输。支持后台的音频将阻止应用程序通过 WACK,因为它永远不会进入挂起模式!

因此,为了通过商店的WACK,我不得不删除自动启动功能,现在该应用程序已在商店中!(噗)。

最新更新