Bru*_*uce 6 ios avplayer swift avplayerviewcontroller
我已经以编程方式添加了AVPlayerViewController一个UIViewController.我可以在玩家完成游戏时收到通知(playerDidFinishPlaying).我还想知道用户是否在播放视频时触摸了屏幕,但我没有找到任何相关的通知.
解决方案是创建一个Base类AVPlayerViewController并覆盖touches(_:with :)方法:
斯威夫特2:
自定义基类:
class CustomAVPlayerViewController: AVPlayerViewController {
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
print("touchesBegan")
}
}
Run Code Online (Sandbox Code Playgroud)
视图控制器:
let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let player = AVPlayer(URL: videoURL!)
let playerViewController = CustomAVPlayerViewController()
playerViewController.player = player
self.presentViewController(playerViewController, animated: true) {
playerViewController.player!.play()
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
自定义基类:
class CustomAVPlayerViewController: AVPlayerViewController {
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touchesBegan")
}
}
Run Code Online (Sandbox Code Playgroud)
查看控制器:
let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let player = AVPlayer(url: videoURL!)
let playerViewController = CustomAVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
Run Code Online (Sandbox Code Playgroud)
别忘了import AVKit和import AVFoundation.
每次点击时playerViewController,都会打印"touchesBegan".
| 归档时间: |
|
| 查看次数: |
3164 次 |
| 最近记录: |