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