ボタンを押したときにムービーを再生するための簡単なiPadアプリを作っています。ムービーが再生され、ムービーが終了するとAVPlayerViewを閉じてメイン画面に戻ります。 現在、ビデオが終了すると、最後のフレームにとどまります。 現在、私のViewController.Swift。ムービーが完成したらAVPlayerを閉じる
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
//MARK : Properties
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//MARK: Actions
@IBAction func playButton(_ sender: AnyObject) {
let movieURL = Bundle.main.url(forResource: "ElephantSeals", withExtension: "mov")!
let player = AVPlayer(url: movieURL as URL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
// player.actionAtItemEnd = playerViewController.dismiss(animated: true)
}
}
あなたが見ることができるように、私はactionAtItemEndで何かがあるかもしれないと思うが、私はそれを実装するかどうかはわかりません。 ありがとうございます。
ご理解いただきありがとうございます。これは私のために働いた! – RoryM
プレーヤーの再生が終了すると、現在の時刻はゼロに設定されません。ユーザーがビデオを再び再生しようとすると、最後に再生が開始されます。 .AVPlayerItemDidPlayToEndTime通知は、「この通知は、オブザーバが別のスレッドにポストされている可能性があります。 AVPlayerViewControllerを無効にするには、メインスレッドで行う必要があります。 – Leon