Swift:检测视频结束
问题描述:
我必须在我的swift应用程序中播放一些视频。视频工作正常,但我想检测视频何时结束。我搜索了一下,然后我发现NotificationCenter
是解决方案。我使用了这段代码,但是我的应用程序在视频结束时崩溃了。Swift:检测视频结束
这是我的代码:
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)
现在它会工作,因为斯威夫特将解决你不知道如何解决的问题。
你能给我更多的细节吗? –
代码如'url:NSURL'和'func playerDidFinishPlaying(注意:'是Swift 2.你需要在Swift 3中编写你的代码。现在你有一种Swift 2和Swift 3的混合。 – matt