2016-11-04 3 views
-1

Ich muss einige Videos in meiner schnellen Anwendung spielen. Das Video funktioniert einwandfrei, aber ich möchte erkennen, wenn das Video beendet ist. Ich suchte danach, dann fand ich, dass die NotificationCenter die Lösung dafür ist. Ich habe diesen Code verwendet, aber meine Anwendung stürzt am Ende des Videos ab.Swift: Erkennen Video Ende

Dies ist mein Code:

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") 
    } 

Der Fehler ist:

[myApp.myViewController playerDidFinishPlaying]: unrecognized selector sent to instance 0x79669740 

Jede Hilfe bitte?

+0

Können Sie mir bitte weitere Details geben? –

+0

Code wie 'url: NSURL' und' func playerDidFinishPlaying (Anmerkung: 'ist Swift 2. Sie müssen Ihren Code in Swift 3 schreiben. Jetzt haben Sie eine Art Mischung aus Swift 2 und Swift 3. – matt

Antwort

1

Weil Ihr Selektor offensichtlich falsch ist. Sie sagen:

Selector(("playerDidFinishPlaying")) 

Aber das ist nicht der Objective-C-Name Ihrer Methode.

Offensichtlich wissen Sie nicht, wie Sie den Objective-C-Namen Ihrer Methode erstellen. Und du musst nicht! Genau das löst #selector Syntax. Verwenden Sie einfach:

#selector(playerDidFinishPlaying) 

Und jetzt wird es funktionieren, weil Swift das Problem lösen wird, wissen Sie nicht, wie zu lösen.

+0

Ich habe geantwortet Die Frage, die Sie tatsächlich gestellt haben, und ich glaube, ich habe sie richtig beantwortet. Meine Arbeit hier ist erledigt. – matt

+0

Vielen Dank, es funktioniert. Ich glaube, dass ich mehr auf die schnelle Version und Syntax achten muss. Danke nochmal, du bist der Beste ! –

+1

Wenn Sie verstehen möchten, was die # Selektor-Syntax für Sie tut, lesen Sie mein Buch: http://www.apeth.com/swiftBook/ch02.html#_selectors – matt