Swift:检测视频结束
Swift: Detect video end
我必须在 swift 应用程序中播放一些视频。该视频运行良好,但我想检测视频何时结束。我对此进行了搜索,然后发现 NotificationCenter
是解决该问题的方法。我使用了这段代码,但我的应用程序在视频结束时崩溃了。
这是我的代码:
func playVideo(url: NSURL){
let player = AVPlayer(url: url as URL)
NotificationCenter.default.addObserver(self, selector: Selector(("playerDidFinishPlaying")), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)
player.play()
}
func playerDidFinishPlaying(note: NSNotification) {
print("Video Finished")
}
错误是:
[myApp.myViewController playerDidFinishPlaying]: unrecognized selector sent to instance 0x79669740
有什么帮助吗?
因为您的选择器显然是错误的。你是说:
Selector(("playerDidFinishPlaying"))
但这不是您方法的 Objective-C 名称。
显然,您不知道如何为您的方法命名 Objective-C。而你不必!这正是 #selector
语法解决的问题。只需使用它:
#selector(playerDidFinishPlaying)
现在它会起作用,因为Swift会解决你不知道如何解决的问题。
我必须在 swift 应用程序中播放一些视频。该视频运行良好,但我想检测视频何时结束。我对此进行了搜索,然后发现 NotificationCenter
是解决该问题的方法。我使用了这段代码,但我的应用程序在视频结束时崩溃了。
这是我的代码:
func playVideo(url: NSURL){
let player = AVPlayer(url: url as URL)
NotificationCenter.default.addObserver(self, selector: Selector(("playerDidFinishPlaying")), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)
player.play()
}
func playerDidFinishPlaying(note: NSNotification) {
print("Video Finished")
}
错误是:
[myApp.myViewController playerDidFinishPlaying]: unrecognized selector sent to instance 0x79669740
有什么帮助吗?
因为您的选择器显然是错误的。你是说:
Selector(("playerDidFinishPlaying"))
但这不是您方法的 Objective-C 名称。
显然,您不知道如何为您的方法命名 Objective-C。而你不必!这正是 #selector
语法解决的问题。只需使用它:
#selector(playerDidFinishPlaying)
现在它会起作用,因为Swift会解决你不知道如何解决的问题。