2

ビデオを背景として追加しようとしていますが、うまくいきません。

これは私が使用しているコードです:

import UIKit
import MediaPlayer
import AVFoundation
import AVKit
import MediaPlayer

class WelcomeViewController: UIViewController {

    let moviePlayerController = AVPlayerViewController()
    var aPlayer = AVPlayer()
    func playBackgroundMovie(){
        if let url = NSBundle.mainBundle().URLForResource("WelcomeVideo", withExtension: "mp4") {
            aPlayer = AVPlayer(URL: url)
        }
        moviePlayerController.player = aPlayer
        moviePlayerController.view.frame = view.frame
        moviePlayerController.videoGravity = AVLayerVideoGravityResizeAspectFill
        moviePlayerController.view.sizeToFit()
        moviePlayerController.videoGravity = AVLayerVideoGravityResizeAspect
        moviePlayerController.showsPlaybackControls = false
        moviePlayerController.view.userInteractionEnabled = false
        aPlayer.play()
        view.insertSubview(moviePlayerController.view, atIndex: 0)
    }

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

        self.moviePlayerController.view.backgroundColor = UIColor.grayColor()

        playBackgroundMovie()
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "didPlayToEndTime", name: AVPlayerItemDidPlayToEndTimeNotification, object: nil)
    }

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

    func didPlayToEndTime(){
        aPlayer.seekToTime(CMTimeMakeWithSeconds(0, 1))
        aPlayer.play()
    }
}

アプリケーションを実行すると、次のようにクラッシュします。

aPlayer = AVPlayer(URL: url!)

プロジェクトに「WelcomeVideo.mp4」も追加しました。

ここに画像の説明を入力

画像でわかるように、「WelcomeVideo.mp4」は現在のView Controllerクラスのすぐ隣にあります...ここで何が間違っていますか?

4

2 に答える 2

2

自分を直せ!Build PhasesのCopy Bundle Resorcesに追加する必要があったことを忘れていました。

于 2016-01-14T01:08:06.373 に答える
1
if let filePath = Bundle.main.path(forResource: "small", ofType: ".mp4") {
    let filePathURL = NSURL.fileURL(withPath: filePath)
    let player = AVPlayer(url: filePathURL)
    let playerController = AVPlayerViewController()
    playerController.view.backgroundColor = UIColor.red
    playerController.player = player
    self.present(playerController, animated: true) {
        player.play()
    }
}
于 2017-04-08T10:21:33.027 に答える