Objective c 在tvos中跟踪快进/快退

Objective c 在tvos中跟踪快进/快退,objective-c,avplayer,tvos,avplayerviewcontroller,Objective C,Avplayer,Tvos,Avplayerviewcontroller,苹果的tvosAVPlayServiceWController允许用户通过按下siri遥控器的最右/最左端来快进/快退。是否有任何委托方法来跟踪此操作。我确实遇到了以下方法,但它只足以跟踪拖放搜索或向前搜索10秒。除了跟踪avplayeritemscurrentTime属性外,还有其他方法跟踪快进吗 - (void)playerViewController:(AVPlayerViewController *)playerViewController willResumePlaybackAfter

苹果的tvos
AVPlayServiceWController
允许用户通过按下siri遥控器的最右/最左端来快进/快退。是否有任何委托方法来跟踪此操作。我确实遇到了以下方法,但它只足以跟踪拖放搜索或向前搜索10秒。除了跟踪avplayeritems
currentTime
属性外,还有其他方法跟踪快进吗

- (void)playerViewController:(AVPlayerViewController *)playerViewController
willResumePlaybackAfterUserNavigatedFromTime:(CMTime)oldTime
                      toTime:(CMTime)targetTime

据我所知,没有办法从AvPlayerServiceControllerDelegate获得这些信息

但由于AVPlayServiceController当时正在内部使用AVPlayer的注入实例。。。您可以创建AVPlayer的自定义子类来跟踪该用法

class ViewController: AVPlayerViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        play(stream: URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!)
    }

    // MARK: - Private

    private func play(stream: URL) {
        let asset = AVAsset(url: stream)
        let playetItem = AVPlayerItem(asset: asset)
        player = MyPlayer(playerItem: playetItem)
        player?.play()
    }
}


class MyPlayer: AVPlayer {

    override func seek(to time: CMTime, toleranceBefore: CMTime, toleranceAfter: CMTime, completionHandler: @escaping (Bool) -> Void) {
        super.seek(to: time, toleranceBefore: toleranceBefore, toleranceAfter: toleranceAfter, completionHandler: completionHandler)

        print("The user did seek to: \(time)")
    }
}

这不适用于通过按住Siri遥控器的左上角或右上角按钮实现的快进和快退。