2016-04-26 31 views
10

Bu yüzden MPMoviePlayerController kullanımdan kaldırıldığında bir çözüm arıyordum.MPMoviePlayerController, şu anda kullanımdan kaldırıldı mı?

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() 

Ben video kaydedebilir ve ben kayıt bittim kez, yeni bir görünümde yukarıdaki kod ile çalınır: benim şimdiki kod çalışıyor. Ama MPMoviePlayerController'ın iOS9'da kullanımdan kaldırıldığını anladığım kadarıyla yukarıdaki kod gibi çalışan bir çözüm bulamıyorum. Anladığım kadarıyla AVPlayer ve AVPlayerViewController kullanıcılarına ihtiyacım var.

this ve onlara benzeyen diğer birçok çözümü denedim. Ama sadece yukarıdaki kodda olmasını istediğim gibi çalışmayacak.

Sadece video kaydetmek istiyorum ve aynı zamanda snapchat gibi yeni bir görünümde oynatmak istiyorum. Ben this (kabul yanıt) veya this solution (AVPlayer) ile düzeltmek çalıştığınızda

Yani, görünüm boştur:

beni

EK BİLGİ EKLENDİ yardım edin. Hiçbir şey gösterilmez.

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() 

Ve ben değiştirmek zorunda AVPlayerViewController ile denerseniz: hiçbir şey gösterilir

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() 
     } 
    }) 

Böyle. Burada enter image description here

+1

Bağlantılı cevabınız çözüm gibi görünüyor. "Genişlet, ancak yukarıdaki kodda olmasını istediğim gibi çalışmayacak." Tam olarak sorun nedir? – Curmudgeonlybumbly

+0

'AVPlayerViewController' kullanmaya çalıştığınızda hangi sorunları yaşıyorsunuz? Senin sorunun mantıklı değil. Ne işe yaramıyor? – JAL

+0

Tamam Soruları düzenleyeceğim ve resim ekleyeceğim :) ama yanıtladığım bağlantılı olarak, iki sorun var, ilki hiç bir şey çalmıyor, görüntü tamamen boş diğer problem bir video oyuncunun gösterilen ama gridir. Yazdırma ekranlarını alıp –

cevap

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() 

Eğer AVPlayerLayer eklemeden SONRA çalarınızı başlatmak. Şunun gibi deneyin:

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

koduna ekleyeceğim. Hala boş bir görünüm:/ –

+0

Video URL'nizde bir sorun olabilir. Bunu denedim - http://clips.vorwaerts-gmbh.de/VfE_html5.mp4 - ve her şey beklendiği gibi çalışır. Video URL'niz https: // değilse, Uygulama Aktarım Güvenliği Politikası'nı yapılandırmanız gerektiğini unutmayın. –

+0

aptal bir soru, bunu viewdidload'umda yapmalı mıyım? gibi: viewDidLoad() fonk geçersiz kılma { super.viewDidLoad() URLPath bakalım: NSURL = NSURL (dize: String = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" url izin URLPath)! let oyuncu = AVPlayer (URL: URL) let avPlayerLayer: AVPlayerLayer = AVPlayerLayer (oyuncu: player) avPlayerLayer.frame = CGRectMake (50,50,100,100) self.view.layer.addSublayer (avPlayerLayer) player.play ( } –

İlgili konular