2016-09-09 3 views
0

Я работаю над приложением iOS. Эта прикладная база на СМИ NEWS.Проблема с воспроизведением/паузой AVPlayerViewController в iOS

Я играю небольшое видео из выделенных новостей. Я столкнулся с проблемой незнакомца с AVPlayerViewController.

Когда я воспроизвожу видео, все в порядке. Когда я перехожу в автономный режим воспроизведения видео в режиме воспроизведения & после воспроизведения видео в буфере воспроизведения, видео останавливается, но progress bar(Slider) постоянно находится в режиме воспроизведения, пока видео остановлено.

Для получения дополнительного клиренса посмотрите это GIF изображение:

Please visit this link for batter understanding.

Это мой код для игрока.

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.playVideo() 
    } 

    func playVideo(){ 
     let videoURL = NSURL(string: "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8") 
     let player = AVPlayer(URL: videoURL!) 
     let playerController = AVPlayerViewController() 
     playerController.player = player 
     self.addChildViewController(playerController) 
     self.view.addSubview(playerController.view) 
     playerController.view.frame = self.view.frame 
     player.play() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+0

Показать код. – pkc456

+0

Вы управляете текущим игровым временем, если да, пожалуйста, проверьте свой таймер, возможно, он не остановился, также вы можете поделиться своим кодом –

+0

Я использую AVPlayerViewController. –

ответ

0

Я пробовал свой код, и я даже не видел изображение из вашего gif. Я также пробовал ваш код с другой ссылкой на видео (https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4), и проблема не была воспроизведена.

Я думаю, ваша проблема в том, как вы пытаетесь показать свой AVPlayerViewController.

Рассмотрим следующий фрагмент кода:

let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") 
let player = AVPlayer(URL: videoURL!) 
let playerViewController = AVPlayerViewController() 
playerViewController.player = player 
self.presentViewController(playerViewController, animated: true) { 
    playerViewController.player!.play() 
} 

Это должно работать. Если вам нужна настройка ui, вы не должны использовать AVPlayerViewController, я думаю.

UPDATE:

Reachaility Попробуйте добавить поддержку:

class MyViewController: UIViewController { 
    var reachability: Reachability? 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    reachability = try? Reachability.reachabilityForInternetConnection() 
    reachability?.whenUnreachable = { _ in 
     player.pause() 
    } 
    try? reachability?.startNotifier() 
+0

Это не работает для моего требования. Когда я отсоединяюсь от сети, видео останавливается, но состояние непрерывного воспроизведения индикатора выполнения. –

+0

Вот как работает «AVPlayerViewController». Если вам нужно остановить игрока, вы можете комбинировать свой код с [Достижимостью] (https://github.com/ashleymills/Reachability.swift/blob/master/Reachability/Reachability.swift). Подписывайтесь на сетевые изменения и управляйте состоянием вашего игрока. – rkyr

+0

Я пробовал это, но не добился успеха. –

Смежные вопросы