2015-02-23 2 views
3

Я писал в небольшом проекте приложения, и я сделал видео для раскадровки. Моя единственная проблема, однако, в том, что я не знаю, как добавить видео в раскадровку. ImageView не принимает тип файла (.mov). В сети я только нашел учебник для Xcode 4 и ничего больше. Мне нужно видео, а не GIF-файл, потому что я не хочу, чтобы GIF зацикливался навсегда. Я использую Свифт.Как добавить видео на страницу раскадровки (Xcode 6)

Спасибо!

+0

Вам нужно будет сделать это в коде, создать MPMoviePlayer и добавить его в свой вид. – rckoenes

+0

Спасибо! Из любопытства было бы легче создать GIF, и если да, то как я мог бы установить GIF для остановки через определенное количество времени (скажем, 60 минут)? Видео только 3 кадра, которые повторяются в течение часа, поэтому, вероятно, он будет работать лучше в формате .GIF. – user113085

+0

Ну, если это всего лишь 3 кадра, было бы излишним использовать фильм, так как он увеличит размер вашего приложения. Но анимированные GIF-файлы не поддерживают UIImageView по умолчанию. Тем не менее вы можете передать 3 изображения в UIImageView, которые он будет оживлять. – rckoenes

ответ

2

Я бы порекомендовал вам добавить MediaPlayer.framework в опции фазы сборки

Фаза сборки -> link binary with library -> используйте кнопку добавления и введите mediaplayer и добавьте MediaPlayer.framework. После этого добавьте следующий код:

import UIKit 
import MediaPlayer 

class ViewController: UIViewController { 
    var moviePlayer: MPMoviePlayerController! 

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

     let path = NSBundle.mainBundle().pathForResource("sample", ofType:"mp4") 
     let url = NSURL.fileURLWithPath(path!) 
     self.moviePlayer = MPMoviePlayerController(contentURL: url) 
     if let player = self.moviePlayer { 
      player.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height) 
      player.view.sizeToFit() 
      player.scalingMode = MPMovieScalingMode.Fill 
      player.fullscreen = true 
      player.controlStyle = MPMovieControlStyle.None 
      player.movieSourceType = MPMovieSourceType.File 
      player.repeatMode = MPMovieRepeatMode.One 
      player.play() 
      self.view.addSubview(player.view) 
     } 
    } 

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

Я не знаю, хотите ли вы, чтобы видео автоматически воспроизводилось или нет. Если вы хотите видео с автоматическим воспроизведением, вы можете добавить видео с помощью Mediaplayer. Я пропустил для вас свой код. Я просто начинающий быстро, но он работает для меня.

Сначала нужно добавить видео в свой проект

, а затем в коде ваш может сделать так:

import MediaPlayer 

class YOURCLASS: UIViewController { 

override func viewDidAppear(animated: Bool) { 

     playVideo() 
    } 

    var moviePlayer : MPMoviePlayerController? 

    func playVideo() { 
     let path = NSBundle.mainBundle().pathForResource("THENAMEOFYOURVIDEO", ofType:"m4v") 
     let url = NSURL.fileURLWithPath(path!) 
     moviePlayer = MPMoviePlayerController(contentURL: url) 

     if let player = moviePlayer { 

player.view.frame = CGRect(x: 0, y: 50, width: self.view.frame.size.width, height: 300) 

      player.prepareToPlay() 
      player.scalingMode = .AspectFill 
      player.controlStyle = .None 
      player.shouldAutoplay = true 
      player.repeatMode = MPMovieRepeatMode.One 
      self.view.addSubview(player.view) 

     }  
    } 
} 
+0

Спасибо! Это помогло мне, однако, сборка завершилась неудачей из-за проблемы с шириной в строке 20, и когда я пытаюсь изменить размеры, чтобы исправить видео соответствующим образом, он не может быть создан. – user113085

+0

Извините, я не правильно вставлял свой код: player.view.frame = CGRect (x: 0, y: 50, width: self.view.frame.size.width, height: 300) – ChinaXiaoHong

Смежные вопросы