2016-04-26 14 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 को आईओएस 9 में बहिष्कृत किया गया है और मुझे ऊपर दिए गए कोड की तरह काम करने वाला कोई समाधान नहीं मिल रहा है। मैं समझता हूं कि मुझे 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

ठीक है, मैं प्रश्न संपादित करूँगा और एक तस्वीर जोड़ूंगा :) लेकिन उत्तर दिए गए उत्तर के साथ, दो समस्याएं हैं पहला यह है कि कुछ भी नहीं खेला जाता है, दृश्य पूरी तरह खाली है दूसरी समस्या यह है कि एक वीडियो प्लेयर है दिखाया गया है लेकिन भूरा है। मैं प्रिंट स्क्रीन लेता हूं और कोड –

उत्तर

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

आपके वीडियो यूआरएल में कुछ गलत हो सकता है। मैंने यह कोशिश की - http://clips.vorwaerts-gmbh.de/VfE_html5.mp4 - और सबकुछ अपेक्षित के रूप में काम करता है। याद रखें कि यदि आपका वीडियो यूआरएल https: // नहीं है, तो आपको ऐप ट्रांसपोर्ट सिक्योरिटी पॉलिसी को कॉन्फ़िगर करने की आवश्यकता है। –

+0

एक बेवकूफ सवाल है, मुझे इसे अपने viewdidload में करना चाहिए? जैसे: ओवरराइड viewDidLoad() समारोह { super.viewDidLoad() जाने urlPath: स्ट्रिंग = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" जाने यूआरएल: NSURL = NSURL (स्ट्रिंग: urlPath)! देना खिलाड़ी = AVPlayer (यूआरएल: यूआरएल) जाने avPlayerLayer: AVPlayerLayer = AVPlayerLayer (खिलाड़ी: खिलाड़ी) avPlayerLayer.frame = CGRectMake (50,50,100,100) self.view.layer.addSublayer (avPlayerLayer) player.play () } –

संबंधित मुद्दे