2016-01-14 4 views
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» в моем проекте также :

enter image description here

Как вы можете видеть на изображении, «Welcom eVideo.mp4 "находится прямо рядом с классом контроллера текущего вида ... Что я здесь делаю неправильно?

ответ

2

Исправлено! Забыл я должен был добавить его к Копирование Bundle Resorces в Фазы сборки.

+0

Я просто пишу, что в моем ответе :) В любом случае, еще одна вещь, которую вы должны иметь в виду, что вы не должны использовать принудительный разворачивания, когда вы не совсем уверены, что вернулся, что значение не ноль (функция URLForResource возвращает NSURL?, который является необязательным и может быть nil). Вместо этого вы должны использовать необязательное связывание, чтобы безопасно получить доступ к необязательному. – Whirlwind

+0

@Whirlwind - Вы имеете в виду, как я сделал сейчас? (Проверить вопрос для обновленного кода) –

+0

@Whirlwind Я быстро вопрос. WelcomeVideo.mp4 - это просто взгляд, а не звук, но когда я пишу музыку из музыкального приложения или Spotify, моя текущая музыка останавливается, когда этот плеер показывает. Как я могу это предотвратить? –

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() 
    } 
} 
Смежные вопросы