Я написал некоторый код для воспроизведения видео после запуска, но после воспроизведения видео оно не возвращается к раскадровке, оно просто застревает в этом цикле, где на секунду возвращается к основной плате, а затем становится черным (вероятно, конец видео)
В консоли отладки написано "Приложение 2019-05-05 01: 32: 33.766132 + 0800 [35989: 1028569] [AVKit] Целевое представление должно быть нашим собственным представлением при переходе контроллера полноэкранного просмотра!"
Я пробовал что-то вроде того, что ощущает конец видео, но это не помогает.
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
playVideo()
}
let playerController = AVPlayerViewController()
private func playVideo() {
guard let path = Bundle.main.path(forResource: "video", ofType:"m4v") else {
debugPrint("video.m4v not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
playerController.player = player
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerController.player?.currentItem)
playerController.showsPlaybackControls = false
present(playerController, animated: true) {
player.play()
}
}
@objc func playerDidFinishPlaying(note: NSNotification) {
playerController.dismiss(animated: true, completion: nil)
}
}
Я ожидал, что видео закончится после завершения воспроизведения, чтобы пользователь мог видеть домашний экран приложения.