Я играю видео:MPMoviePlayerController переключения видео
let path = NSBundle.mainBundle().pathForResource("Video", ofType:"mp4")
let url = NSURL.fileURLWithPath(path!)
moviePlayer = MPMoviePlayerController(contentURL: url)
if let player = moviePlayer {
player.view.frame = self.view.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
player.controlStyle = .None
self.view.addSubview(player.view)
}
, и я хочу, чтобы заменить это другое видео при нажатии кнопки:
@IBAction func aButtonIsPressed(sender: AnyObject) {
let path = NSBundle.mainBundle().pathForResource("Another Video", ofType:"mp4")
let url = NSURL.fileURLWithPath(path!)
moviePlayer = MPMoviePlayerController(contentURL: url)
if let player = moviePlayer {
player.view.frame = self.view.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
player.controlStyle = .None
self.view.addSubview(player.view)
}
}
Когда я нажимаю на кнопку воспроизведения видео , но, похоже, задержка добавляет новое видео, что дает ему прерывистый переход. Есть ли способ свести к минимуму эту задержку? Я мог бы попробовать добавить еще один MPMoviePlayerController, чтобы предварительно загрузить второе видео, но из некоторого тестирования я нашел, что строка, вызывающая отруб, находится здесь.
self.view.addSubview(player.view)
Могу ли я сохранить первое воспроизведение видео до линии выше «didFinish»? Это было бы прекрасно.
Хороший материал! Есть ли способ предварительной загрузки на один и тот же объект? Есть еще черный экран, который появляется при загрузке фильма. –
Нет, вы не можете этого сделать, но вы можете слушать stateChangeNotification и показывать изображение сверху или буферизировать анимацию до следующего запуска –