首页 > 解决方案 > AVPlayer,视频结束后黑屏

问题描述

视频结束后我有黑屏,但我想在视频结束后重定向到另一个故事板。

有人可以帮我解决这个问题。

谢谢

import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        playVideo()
    }

    private func playVideo() {
        guard let path = Bundle.main.path(forResource: "Kristinka", ofType:"m4v") else {
            debugPrint("video.m4v not found")
            return
        }
        let player = AVPlayer(url: URL(fileURLWithPath: path))
        let playerController = AVPlayerViewController()
        playerController.showsPlaybackControls = false

        playerController.player = player

        present(playerController, animated: true) {

            player.play()



            }
        }


}

标签: swiftvideoavplayer

解决方案


您需要检测您正在播放的项目何时结束。为此,您可以添加一个观察者。例如:

func finishedVideo(_ notification: NSNotification) {
    print("Animation did finish")
}

private func playVideo() {
    guard let path = Bundle.main.path(forResource: "Kristinka", ofType:"m4v") else {
        debugPrint("video.m4v not found")
        return
    }
    let player = AVPlayer(url: URL(fileURLWithPath: path))
    let playerController = AVPlayerViewController()
    playerController.showsPlaybackControls = false

    playerController.player = player

    present(playerController, animated: true) {

        NotificationCenter.default.addObserver(self,
                                               selector: #selector(finishedVideo(_:)),
                                               name: .AVPlayerItemDidPlayToEndTime,
                                               object: player?.currentItem)

        player.play()



    }
}

我在这个非常相关的问题上挖掘了这段代码。如果您进行搜索,会有很多相关/重复的答案。


推荐阅读