2013-01-23 39 views
0

我提交了一个背景音频应用程序进行认证,失败的原因有两个,我找不出原因。背景音频流应用程序认证失败

原因1:

这个应用程序未能正确的发挥至少一个, 暂停回应,或播放/暂停事件。

据我所知,MediaControl事件PlayPauseStopPlayPause需要受到照顾,并已经这样做了(和测试,在平板电脑和,他们正在本地设备)中的代码。但是,由于停止媒体流并重新启动它需要比预期更长的时间,因此我使用MediaElement.Pause()作为“暂停”和“停止”。

我读了another post谁在认证阶段有类似的问题。有人建议使用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班看,但无济于事。

谢谢!

回答

0

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

我的应用程序将在应用程序启动后自动启动MediaElement流。支持背景的音频将阻止应用程序传递WACK,因为它永远不会进入暂停模式!

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

0

关于第一个问题,请确保您的媒体元素是准备用来玩:

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

CurrentTrack.Play(); 

你也必须停止你的媒体元素时的观点是卸载。

问候。

+0

感谢您的回复,在MediaElement_MediaOpened事件触发后,流式音频被检查并标记为可以播放。我还发现,只要连接了调试器,应用程序就不会进入挂起模式。似乎应用程序商店要求所有媒体资源在应用程序进入暂停模式时发布(即使是支持背景音频的应用程序),我也已经通过发布流媒体源解决了这个问题。谢谢! –

相关问题