Подтвердить что ты не робот

MPMoviePlayerController устарел, что теперь?

Итак, я искал решение сейчас, когда MPMoviePlayerController становится устаревшим. мой текущий код работает нормально:

moviePlayer = MPMoviePlayerController(contentURL: receivedURL)
    moviePlayer!.movieSourceType = MPMovieSourceType.Unknown
    moviePlayer!.view.frame = view.bounds
    moviePlayer!.scalingMode = MPMovieScalingMode.AspectFill
    moviePlayer!.controlStyle = MPMovieControlStyle.None
    moviePlayer!.shouldAutoplay = true

    view.addSubview((moviePlayer?.view)!)
    moviePlayer?.setFullscreen(true, animated: true)
    moviePlayer!.play()

Я записываю видео, и как только я закончил запись, он будет воспроизведен с приведенным выше кодом в новом представлении. Но поскольку я понимаю, что MPMoviePlayerController устарел в iOS9, и я не могу найти какое-либо решение, работающее подобно приведенному выше коду. Я понимаю, что мне нужен пользователь AVPlayer и AVPlayerViewController.

Я пробовал этот и многие другие решения, которые выглядят как они. Но он просто не работает, как я хочу, в коде выше.

Я просто хочу записать видео и воспроизвести его в новом виде, точно так же, как snapchat.

Пожалуйста, помогите мне

ДОБАВЛЕННАЯ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Поэтому, когда я пытаюсь исправить это с помощью этого (принятый ответ) или это решение (AVPlayer), представление пустое. ничего не отображается.

var player:AVPlayer!
    let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
    avPlayerLayer.frame = CGRectMake(50,50,100,100)
    self.view.layer.addSublayer(avPlayerLayer)
    player = AVPlayer(URL: receivedURL)
    player.play()

И если я попытаюсь с помощью AVPlayerViewController, который мне пришлось изменить:

let player = AVPlayer(URL: receivedURL)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    dispatch_async(dispatch_get_main_queue(), {
        self.presentViewController(playerViewController, animated: true) {
            playerViewController.player?.play()
        }
    })

это происходит, когда ничего не отображается. введите описание изображения здесь

4b9b3361

Ответ 1

var player:AVPlayer!
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRect(x:50,y:50,width:100,height:100)
self.view.layer.addSublayer(avPlayerLayer)
player = AVPlayer(url: receivedURL)
player.play()

здесь вы инициализируете своего игрока ПОСЛЕ добавления его в AVPlayerLayer. попробуйте вот так:

let player = AVPlayer(url: receivedURL)
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRect(x:50,y:50,width:100,height:100)
self.view.layer.addSublayer(avPlayerLayer)
player.play()