我必须在我的快速应用程序中播放一些视频。视频工作正常,但我想检测视频何时结束。我搜索了那个,然后我发现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
请帮忙吗?
答案 0 :(得分:1)
因为你的选择器显然是错误的。你在说:
Selector(("playerDidFinishPlaying"))
但这不是你方法的Objective-C名称。
显然,您不知道如何制作方法的Objective-C名称。你不必!这正是#selector
语法解决的问题。只需使用它:
#selector(playerDidFinishPlaying)
现在它会起作用,因为Swift会解决你不知道如何解决的问题。