2016-10-05 27 views
6

'da video oynatırken dokunmayı nasıl algılayacağım Programlı olarak AVPlayerViewController'u UIViewController'a ekledim. Oynatıcı bittiğinde (playerDidFinishPlaying) bildirimi alabiliyorum. Ayrıca, bir kullanıcı video oynatılırken ekrana dokunup dokunmadığını ve ilgili bildirimleri bulamadım.Hızlı bir şekilde AVPlayerViewController

Swift 2:

Özel Temel Sınıf:

class CustomAVPlayerViewController: AVPlayerViewController { 
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     print("touchesBegan") 
    } 
} 

ViewController:

+0

Kullanıcı ileri/geri düğmesine basıldığında dokunma nasıl algılanır? – pkc456

cevap

6

çözeltisi AVPlayerViewController bir Taban sınıfı oluşturmak ve touches​Began(_:​with:​) yöntemini geçersiz olduğunu

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:

Custom Taban Sınıfı:

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

import AVKit ve import AVFoundation unutmayın.

playerViewController'a her dokunduğunuzda "touchesBegan" yazdırılır.

+2

Başvuru belgeleriyle ilgili düşünceleriniz: _Do alt sınıf AVPlayerViewController. Bu sınıfın yöntemlerini geçersiz kılmak desteklenmez ve tanımlanmamış davranışlarla sonuçlanır. – Bruce

+1

@ Bruce'un yorumuna gönderme ([Apple Documentation] (https://developer.apple.com/reference/avkit/avplayerviewcontroller)): _touchesBegan_ bir [UIResponder] 'dir (https://developer.apple.com/reference/uikit/uiresponder) yöntemi (UIResponder-> UIViewController-> AVPlayerViewController). Bizim örneğimizde UIResponder, dokunma olaylarına dikkat etmeli, AVPlayerViewController'ın temel işlevselliğiyle ilgili değildir, yani bu yöntemin geçersiz kılınması AVPlayerViewController'ın bir video ile nasıl çalışacağını yansıtmaz - örneğin, bunu yapan yöntemler geçersiz. Not için teşekkürler. –

+0

@AhmadF, Kullanıcı ileri/geri düğmesine bastığında nasıl dokunulur? – pkc456

İlgili konular