当 playerviewcontroller 不再可用时 属性 在哪里放置 registerForRemoteNotifications
Where to property place registerForRemoteNotifications when playerviewcontroller no longer available
我的应用有一个 MainViewController、一个 PlaylistViewController 和一个 PlayerViewController。
当您 return 进入主屏幕时,一切正常,在后台播放音频。
PlayerViewController 在其 viewDidAppear 中调用 registerForRemoteNotifications 以捕获来自控制中心和耳机控件的通知。当此控制器在前台时,会收到来自控制中心/耳机的通知,pause/play 工作正常。
但是,如果在播放音频时 return PlayListViewController 或 MainViewController 然后 return 到主屏幕(音频仍在正常播放),但是来自控件的远程通知中心不再发送到 PlayerViewController 显然是因为它不再存在。
为了做到这一点,我是否需要在 AppDelegate 和 PlayerViewController 中创建静态 AVAudioPlayer 对象,并将 registerForRemoteNotifications 与 PlayerViewController 中的逻辑一起移动到 AppDelegate 以处理来自控制中心和耳机设备的暂停/播放并访问我的 PlayerViewController 中的 AppDelegates 静态对象?
整个远程通知逻辑应该位于应用程序委托 class 中,因为这是唯一 class 在应用程序生命周期中可靠地存在的。
因为可以使用
从任何地方访问应用程序委托
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
您可以创建对其他 classes 的引用或实现委托方法以便能够正确处理通知。
我的应用有一个 MainViewController、一个 PlaylistViewController 和一个 PlayerViewController。
当您 return 进入主屏幕时,一切正常,在后台播放音频。
PlayerViewController 在其 viewDidAppear 中调用 registerForRemoteNotifications 以捕获来自控制中心和耳机控件的通知。当此控制器在前台时,会收到来自控制中心/耳机的通知,pause/play 工作正常。
但是,如果在播放音频时 return PlayListViewController 或 MainViewController 然后 return 到主屏幕(音频仍在正常播放),但是来自控件的远程通知中心不再发送到 PlayerViewController 显然是因为它不再存在。
为了做到这一点,我是否需要在 AppDelegate 和 PlayerViewController 中创建静态 AVAudioPlayer 对象,并将 registerForRemoteNotifications 与 PlayerViewController 中的逻辑一起移动到 AppDelegate 以处理来自控制中心和耳机设备的暂停/播放并访问我的 PlayerViewController 中的 AppDelegates 静态对象?
整个远程通知逻辑应该位于应用程序委托 class 中,因为这是唯一 class 在应用程序生命周期中可靠地存在的。
因为可以使用
从任何地方访问应用程序委托let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
您可以创建对其他 classes 的引用或实现委托方法以便能够正确处理通知。