zu erfassen Ich habe ein AVPlayerViewController
programmgesteuert zu einem UIViewController
hinzugefügt. Ich kann die Benachrichtigung erhalten, wenn der Player fertig ist (playerDidFinishPlaying). Ich würde auch gerne wissen, ob ein Benutzer den Bildschirm berührt hat, während das Video abgespielt wird, und ich habe keine zugehörigen Benachrichtigungen gefunden.In Swift, wie Touch während der Wiedergabe von Video in AVPlayerViewController
Antwort
Die Lösung ist eine Basis Klasse von AVPlayerViewController
zu erstellen und zu überschreiben touchesBegan(_:with:) Methode:
Swift 2:
Individuelle Basisklasse:
class CustomAVPlayerViewController: AVPlayerViewController {
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
print("touchesBegan")
}
}
Viewcontroller:
let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let player = AVPlayer(URL: videoURL!)
let playerViewController = CustomAVPlayerViewController()
playerViewController.player = player
self.presentViewController(playerViewController, animated: true) {
playerViewController.player!.play()
}
Swift 3:
Individuelle Basisklasse:
class CustomAVPlayerViewController: AVPlayerViewController {
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touchesBegan")
}
}
-View-Controller:
let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let player = AVPlayer(url: videoURL!)
let playerViewController = CustomAVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
Vergessen Sie nicht zu import AVKit
und import AVFoundation
.
Jedes Mal, wenn Sie auf playerViewController
tippen, wird "touchesBegan" gedruckt.
Irgendwelche Gedanken über die Referenzdokumentation: _Unterlassen Sie keine AVPlayerViewController. Das Überschreiben der Methoden dieser Klasse wird nicht unterstützt und führt zu undefiniertem Verhalten_. – Bruce
In Bezug auf den @ Bruce-Kommentar ([Apple-Dokumentation] (https://developer.apple.com/reference/avkit/avplayerviewcontroller)): _touchesBegan_ ist ein [UIResponder] (https://developer.apple.com/reference/uikit/uiresponder) Methode (UIResponder-> UIViewController-> AVPlayerViewController). In unserem Fall sollte UIResponder sich um Berührungsereignisse kümmern, es bezieht sich nicht auf die Kernfunktionalität des AVPlayerViewControllers, dh das Überschreiben dieser Methode spiegelt nicht wider, wie AVPlayerViewController mit der Arbeit mit einem Video umgeht - Methoden, die dies nicht tun sollten außer Kraft gesetzt. danke für die Notiz. –
@AhmadF, Wie kann man eine Berührung erkennen, wenn der Benutzer die Vorwärts/Rückwärts-Taste drückt? – pkc456
- 1. Swift AVPlayerViewController Ziel bei der Wiedergabe von Video hinzufügen
- 2. Ändern Sie das Video zur Wiedergabe in AVPlayerViewController von UITableViewController
- 3. AVPlayerViewController Video Audio Hintergrund Wiedergabe und Unterstützung für mehrere Formate
- 4. Swift Video-Wiedergabe dauert lange
- 5. tvOS AVPlayerViewController Video Info
- 6. AVPlayerViewController nicht zeigen Video
- 7. die Wiedergabe von Video
- 8. Dauer während der Wiedergabe von PlaylistItems zurückgegeben?
- 9. Vorwärts und rückwärts funktioniert nicht, wenn App Hintergrund in den Vordergrund während der Video-Wiedergabe in tvOS eingeben
- 10. Spielen Sie ein Video von Youtube in einem AVPlayerViewController in Swift
- 11. Wiedergabe von Video in ASP.NET Seite
- 12. MPMoviePlayerController Fehler _itemFailedToPlayToEnd während der Wiedergabe youtube Video iOS 7
- 13. Wiedergabe Video in Zeitlupe in Android
- 14. Stoppen Sie das Video von der Wiedergabe
- 15. Video nimmt nicht die volle Breite während der Wiedergabe von Video
- 16. Video nach der Wiedergabe ändern
- 17. Wie man Video in ios swift
- 18. Wiedergabe von lokalem Video mit Avplayer/Kit Problem
- 19. URL-Umleitung während der Wiedergabe in loadrunner
- 20. Geterror 404 während der Wiedergabe
- 21. Größe für Video einstellen mit AVPlayerViewController
- 22. Youtube Echtzeit-Video-Wiedergabe
- 23. Der Renderer-Thread ruft SbDecodeTargetGetInfo() während der Wiedergabe von 360-Video nicht auf
- 24. YouTube-Video in UIScrollView keine Berührungen/Wiedergabe
- 25. Wiedergabe von Audiodateien während der Videoaufnahme in iOS
- 26. AVPlayer leeres Video: Wiedergabe von Ton, aber kein Video
- 27. Swift: Video Wiedergabe im Querformat-Modus Wenn Vollbild
- 28. AVPlayer mit Wiedergabesteuerung von avplayerviewcontroller
- 29. Wie "Aufnahme" und "Wiedergabe" Touch-Ereignisse in Android?
- 30. Extrahieren/Aufzeichnen von Audio aus HLS Stream (Video) während der Wiedergabe von iOS
Wie wird die Berührung erkannt, wenn der Benutzer die Vorwärts-/Rückwärts-Taste drückt? – pkc456