swift - xcode swift 3 锁屏 Remote 不工作?

标签 swift xcode class

我试图在播放器处于事件状态并播放时从锁定屏幕捕获播放/停止/下一个/上一个用户操作,但由于某些原因它无法正常工作。

内部类 MusicPlayerViewController: BaseViewController

override func viewDidLoad() {
    super.viewDidLoad()

do {
    UIApplication.shared.beginReceivingRemoteControlEvents()
     print("bb> Receiving remote control events\n")
 } catch {
     print("bb> Audio Session error.\n")
 }

let commandCenter = MPRemoteCommandCenter.shared()
    commandCenter.nextTrackCommand.isEnabled = true
    commandCenter.nextTrackCommand.addTarget(self, action: #selector(MusicPlayerViewController.nextTrackCommandSelector))

}

func nextTrackCommandSelector()
{
  print("omg")
}

在日志中我只能看到

bb> Receiving remote control events

也在 AppDelegate.swift 中有

   override func remoteControlReceived(with event: UIEvent?) {

        print("remote::")


        guard let event = event else {
            print("no event\n")
            return
        }
        guard event.type == UIEventType.remoteControl else {
            print("received other event type\n")
            return
        }
        switch event.subtype {
        case UIEventSubtype.remoteControlPlay:
            print("received remote play\n")
        case UIEventSubtype.remoteControlPause:
            print("received remote pause\n")
        case UIEventSubtype.remoteControlTogglePlayPause:
            print("received toggle\n")
        case UIEventSubtype.remoteControlNextTrack:
            print("clicked next \n")
        case UIEventSubtype.remoteControlPreviousTrack:
            print("clicked Prev \n")
        default:
            print("received \(event.subtype) which we did not process\n")
        }
    }

和能力

enter image description here

我错过了什么?

最佳答案

一些事情:

  1. 您同时使用了委托(delegate)样式和 MPRemoteCommandCenter 样式的远程事件处理。选择一个,而不是两个,看看它们是否冲突。 Apple 建议使用 MPRemoteCommandCenter 样式,但如果您支持较旧的 iOS 版本,则可能需要坚持使用委托(delegate)样式。

  2. 如果您确实选择使用委托(delegate)样式,我记得您还必须成为第一响应者才能开始接收远程控制事件。

  3. 无论您选择哪种事件处理方式,您都必须在您的应用中播放音频,让系统知道将事件路由给您。锁定屏幕(或音频控制中心)应将您的应用列在“正在播放”区域中。

关于swift - xcode swift 3 锁屏 Remote 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264141/

相关文章:

python - “float/str/int”对象不可调用错误

ios - Swift 4 tableview 不使用通用完成处理程序显示数据

ios - 使用按钮以编程方式更改方向 - iOS

ios - Xcode 控制台中我的应用程序名称旁边括号中的数字是什么意思?

python - 如果 python 中另一个输入参数为 TRUE,是否有一种方法将函数的所有输入参数设置为 TRUE?

python - 我需要一个 Python 类来跟踪它被实例化的次数

swift - 在两个 View 之间添加约束时扩展哪个 View

ios - 如何用swift 2.0播放背景音乐?

iphone - 如何在 UITextField 中插入蓝色文本标记?

cocoa - Xcode 中编辑器上方的细长条是什么类型的 View ?