4

当我在Windows Phone 7应用程序中使用BackgroundAudioPlayer时,第一次加载歌曲需要很长时间。在播放第一首曲目之前是否有预先初始化BackgroundAudioPlayer的方法,以便在我开始播放时,它会一直开始播放?我用Google搜索了它,但没有运气。当我例如我使用BackgroundAudioPlayer.Instance时想要播放,暂停,停止等录音。有其他的我可以做些什么来解决这个问题吗?预先初始化WP7中的BackgroundAudioPlayer?

+0

术语的挑选:有没有这样的事情预先初始化,重新初始化,等等,只是“初始化”。 –

+0

我知道,但我想强调一个事实,即我想在它自动初始化之前初始化它,这太迟了。据我所知,它在需要时初始化,对吗?我怎样才能做到这一点,而不呼吁停止,暂停等? – kgrevehagen

+0

还在挑选:“明确初始化”如何?请原谅我在这个问题上无能为力。 –

回答

3

你可以只调用BackgroundAudioPlayer.Instance.Stop();在App构造函数,然后丢弃的UserAction.Stop第一次出现在OnUserAction方法在实现AudioPlayerAgent

+0

我试过了。使用BackgroundAudioPlayer.Instance.Stop(),它似乎加载了18个程序集中的13个,所以这是一个很好的改进。但是我仍然想在点击游戏之前加载剩下的5个。 – kgrevehagen

+0

它是导致问题的程序集加载吗?如果是这样,您可以使用Assembly.Load()将它们预载到您的应用程序中。 – Rob

+0

这似乎也没有工作。我想“碰撞”的打印行看起来像这样的“后台任务”(托管):加载'mscorlib.dll'。相同的程序集被加载到UI Task中,所以我如何显式加载在后台任务上运行的程序集? – kgrevehagen

0

这可能是从一个简单的角度来看待这个问题,但是您是否可以不打电话播放,然后立即暂停播放直到您准备好播放?我不是巨大熟悉的控制,但看这里:

http://msdn.microsoft.com/en-us/library/microsoft.phone.backgroundaudio.backgroundaudioplayer_members(v=vs.92).aspx

前期你可能检查BufferingProgress和PlayerState检查时,轨道准备播放,然后暂停,直到你准备继续。

这有点蛮力,但可能工作。值得一试?

+0

要尝试一些如果你建议推动更多的检查。谢谢!更多,以及其他非暴力方法,高度赞赏! – kgrevehagen