2016-01-14 13 views
9

フルスクリーンではないビュー内でビデオを再生する必要があります(facebookなど)!誰も助けることができますか?私はswift 2とxcode 7を使用しています。私はそれについてgoogledしましたが、私が見つけたのはAVPlayerViewControllerとfullscreenで実行されています。フルスクリーンではないビュー内でビデオを再生する方法は?

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

このコードは、私はそれを試してみてくださいための作品です。

関連する問題