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会解决你不知道如何解决的问题。