2016-01-14 13 views
9

मुझे एक दृश्य के अंदर एक वीडियो चलाने की जरूरत है पूर्ण स्क्रीन में नहीं (जैसे फेसबुक)! क्या कोई मदद कर सकता है? मैं स्विफ्ट 2 और एक्सकोड 7 का उपयोग कर रहा हूं। मैंने इसके बारे में गुमराह किया है लेकिन मुझे लगता है कि AVVlayerViewController और पूर्णस्क्रीन के साथ चलाया जाता है।एक दृश्य के अंदर एक वीडियो कैसे एक पूर्ण स्क्रीन में नहीं खेलता है?

Ps: खराब अंग्रेजी के लिए खेद है।

उत्तर

1

आप वांछित आकार और स्थिति के साथ AVPlayerLayer का उपयोग करने और उस पर वीडियो चलाने का प्रयास कर सकते हैं।

उदाहरण कोड सेटिंग खिलाड़ी और परत:

- (void)setupPlayer 
{ 
    AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:<Your video item URL>]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem]; 

    self.player = [AVPlayer playerWithPlayerItem:playerItem]; 

    self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 

    self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 

    [self.view.layer addSublayer:self.playerLayer]; 
} 

अधिक AVPlayer के बारे में और AVPlayerLayer

+0

ठीक है, मैं जल्द ही प्रतिक्रिया का प्रयास करूंगा और पोस्ट करूंगा – aline

15

यह काम करता है:

class BeginController: UIViewController { 
@IBOutlet weak var videoPreviewLayer: UIView! 
var player: AVPlayer! 
var avpController = AVPlayerViewController() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let moviePath = NSBundle.mainBundle().pathForResource("Hello Moto", ofType: "mp4") 
    if let path = moviePath { 
     let url = NSURL.fileURLWithPath(path) 
     self.player = AVPlayer(url: url) 
     self.avpController = AVPlayerViewController() 
     self.avpController.player = self.player 
     avpController.view.frame = videoPreviewLayer.frame 
     self.addChildViewController(avpController) 
     self.view.addSubview(avpController.view)    
    } 
    // Do any additional setup after loading the view. 
} 
0

स्विफ्ट 3 लागू फली प्लेयर

Podfile:

platform :ios, '10.0' 
use_frameworks! 

def pods 
    pod "Player", "~> 0.5.0" 
end 

target 'YourProject' do 
    pods 
end 

YourViewController:

import Player 

    // Player 
    var player:Player 

    // MARK: object lifecycle Player 
    convenience init() { 
     self.init(nibName: nil, bundle:nil) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     self.player = Player() 
     super.init(coder: aDecoder) 
    } 

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { 
     self.player = Player() 
     super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
    } 

    deinit { 
     self.player.willMove(toParentViewController: self) 
     self.player.view.removeFromSuperview() 
     self.player.removeFromParentViewController() 
    } 


    private func playeVideo(url: URL) { 

     player.playerDelegate = self 
     player.playbackDelegate = self 
     player.view.frame = self.view.bounds // your frame here 
     self.addChildViewController(self.player) 
     self.view.insertSubview(player.view, at: 0) 

     player.url = url 
     self.player.playFromBeginning() 

    } 

कृपया अधिक यहाँ विवरण https://github.com/piemonte/Player

1
import AVFoundation 
import AVKit 

var player = AVPlayer() 
var playerController = AVPlayerViewController() 

func playVideo() { 
    let videoURL = NSURL(string: videoUrl) 
    player = AVPlayer(url: videoURL! as URL) 
    let playerController = AVPlayerViewController() 
    playerController.player = player 
    self.addChildViewController(playerController) 

    // Add your view Frame 
    playerController.view.frame = self.view.frame 

    // Add sub view in your view 
    self.view.addSubview(playerController.view) 

    player.play() 
} 

खिलाड़ी रोक के लिए या कैसे रोक

func stopVideo() { 
    player.pause() 
} 

इस संहिता के लिए मुझे यह प्रयास करें काम है ।

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