2016-09-27 316 views

回答

2

我认为你注意到的差异可能取决于你的应用程序实际上是在锁定屏幕时玩。如果正在播放,则可以在锁定屏幕时在播放和暂停之间切换,并且锁定屏幕不会变为空白。你必须修改现有的正在播放信息,当你暂停,你必须提供当前时间:

let mpic = MPNowPlayingInfoCenter.default() 
    if var d = mpic.nowPlayingInfo { 
     d[MPNowPlayingInfoPropertyPlaybackRate] = 0 
     d[MPNowPlayingInfoPropertyElapsedPlaybackTime] = p.currentTime 
     mpic.nowPlayingInfo = d 
    } 

下面是一些屏幕截图(来自模拟器),这表明这工作。

这里的锁屏,而我的应用程序正在播放:

enter image description here

而这里的锁屏时,我点击暂停按钮:

enter image description here

你可以看到,它不不要空白。

+0

我使用Xamarin,一般可以申请非Xamarin具体的答案,但在这种情况下,它似乎不是这样,我就不必再问,使其Xamarin具体...谢谢。 –

+0

但你有没有测试过iOS 10上面的代码?因为在我看来,我几乎做对Xamarin相同的(我把参考分配给nowPlayingInfo前,然后改变其MPNowPlayingInfoPropertyPlaybackRate,并重新分配给nowPlayingInfo)和所有我得到的是黑屏? –

+0

经过一些更多的测试后,我非常确定它是一个iOS 10的bug - 我已经看到Control Center正常工作,它与锁屏共享信息。 –

0

经过一些测试,这似乎是iOS中的错误 - 如果控制中心显示正确的信息和锁屏是错了,它是一个系统错误。

如果有人知道一些解决方法,我会保持开放的问题了一段时间,之后我将标志着这是一个明确的答案。

编辑:由Matt的建议,这是iOS版的行为,似乎之前的表现,但我没有注意到。从我的角度来看,这是一个错误,我仍在寻找可能的解决方法。

+1

我修改了我的答案以显示屏幕截图,以证明这确实在锁定屏幕中正常工作。我认为你所看到的只是如果你在锁定屏幕时暂停,你不能从锁定屏幕再次启动。但这已经是事实。 – matt

+0

是的,我正在问这个。嗯,我没有注意到在iOS 10之前,但我想你是对的。在一天结束时,我认为这是一个错误,它不应该是这样的。我会加注你的答案并将其标记为答案,正如我所说我认为这是一个错误。 –