Swift:检测视频结束

时间:2016-11-04 16:05:22

标签: ios swift video avplayer

我必须在我的快速应用程序中播放一些视频。视频工作正常,但我想检测视频何时结束。我搜索了那个,然后我发现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

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

因为你的选择器显然是错误的。你在说:

Selector(("playerDidFinishPlaying"))

但这不是你方法的Objective-C名称。

显然,您不知道如何制作方法的Objective-C名称。你不必!这正是#selector语法解决的问题。只需使用它:

#selector(playerDidFinishPlaying)

现在它会起作用,因为Swift会解决你不知道如何解决的问题。