2016-04-26 4 views
10

私は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とそれ以外の多くのソリューションを試してみました。 しかし、私は上記のコードでそれがほしいと思うように動作しません。

ちょうどビデオを録画し、それをスナップショットのように新しいビューで再生したいだけです。

私を助けてください

は、追加情報を追加しました:

私は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

+1

あなたのリンクの答えは、ソリューションのように思えます。 「しかし、私は上記のコードでそれが欲しいのと同じように動作しません」何が問題なのですか? – Curmudgeonlybumbly

+0

'AVPlayerViewController'を使用しようとしているときに、どのような問題が起きていますか?あなたの質問は理にかなっていません。何が「うまくいかないの?」 – JAL

+0

私は質問を編集して画像を追加します:) しかし、私はリンクされた回答で、2つの問題があります 最初のものは何も再生されない、ビューは完全に空です もう1つの問題は、示されているが灰色である。 私は印刷画面を取って、コード –

答えて

6
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() 
+0

を空のままで追加します:/ –

+0

ビデオURLに何か問題があります。私はこの1つを試しました - http://clips.vorwaerts-gmbh.de/VfE_html5.mp4 - すべてが有効です。ビデオURLがhttps://でない場合は、App Transport Security Policyを設定する必要があります。 –

+0

愚かな質問、私は私のviewdidloadでこれを行う必要がありますか?以下のような:文字列= "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" のlet URL:NSURLは= NSURL(文字列:URLパスのviewDidLoad FUNC オーバーライド(){ super.viewDidLoad() は、URLパスを聞かせて)! レットプレイヤー= AVPlayer(URL:URL) ましょうavPlayerLayer:AVPlayerLayer = AVPlayerLayer(プレイヤー:プレイヤー) avPlayerLayer.frame = CGRectMake(50,50,100,100) self.view.layer.addSublayer(avPlayerLayer) player.play( ) } –

関連する問題