web-dev-qa-db-ja.com

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を使用する必要があることを理解しています。

私は this とそれらのように見える他の多くの解決策を試しました。しかし、上記のコードで必要なようには機能しません。

ビデオを録画して、snapchatとまったく同じように新しいビューで再生したいだけです。

私を助けてください

追加情報:

したがって、 this (受け入れられた回答)または this solution (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()
        }
    })

これは、何も表示されない場合に発生します。 enter image description here

12
user4545564
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()
7
Olga Nesterenko