2016-09-09 5 views
2

ストーリーボードにビデオクリップを挿入するにはどうすればいいですか?私が見るすべては、次のとおりです。iOSでルーピングビデオを再生するには?

enter image description here

また、私は.MP4ファイルを置けばいいのどこ?ビューコントローラの起動時にループするビデオクリップのために含めることが正しいコードであるもの

enter image description here

そして最後に、。

//insert looping video clip here 

私はAndroid Studio/javaに精通しており、問題はありません。しかし、私は非常に迅速かつXcodeの新しいですので、私は問題を抱えています。

答えて

6

ルーピングビデオにするには: -

  • がそれに応じて制約を設定し、あなたのViewControllerにUIViewを追加します。 - :のViewControllerを準拠したストーリーボードを変更しVideoPlay

    import UIKit 
    import AVFoundation 
    
    
    
    class VideoPlay: UIView { 
    
        private var player : AVPlayer! 
    
         private var playerLayer : AVPlayerLayer! 
    
        init() { 
    
          super.init(frame: CGRectZero) 
           self.initializePlayerLayer() 
    
          } 
    
          override init(frame: CGRect) { 
           super.init(frame: frame) 
           self.initializePlayerLayer() 
           self.autoresizesSubviews = false 
          } 
    
          required init?(coder aDecoder: NSCoder) { 
           super.init(coder: aDecoder) 
           self.initializePlayerLayer() 
    
          } 
    
    
          private func initializePlayerLayer() { 
    
           playerLayer = AVPlayerLayer() 
           playerLayer.backgroundColor = UIColor.whiteColor().CGColor 
           playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
    
           self.layer.addSublayer(playerLayer) 
           playerLayer.frame = self.bounds 
          } 
    
          func playVideoWithURL(url: NSURL) { 
    
           player = AVPlayer(URL: url) 
           player.muted = false 
    
           playerLayer.player = player 
    
           player.play() 
    
           loopVideo(player) 
          } 
    
          func toggleMute() { 
           player.muted = !player.muted 
          } 
    
          func isMuted() -> Bool 
          { 
             return player.muted 
          } 
    
          func loopVideo(videoPlayer: AVPlayer) { 
    
           NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: nil, queue: nil) { notification in 
    
            videoPlayer.seekToTime(kCMTimeZero) 
            videoPlayer.play() 
           } 
          } 
    
         } 
    
  • は、あなたの準拠クラスで@IBOutletとしてUIView

    @IBOutlet weak var videoView : VideoPlay! 
        //Where VideoPlay is a CustomClass for the Video player 
    
  • は、ビデオプレーヤーUIVewのカスタムクラスを作成することを宣言します。

    class ViewController: UIViewController {   
    
         @IBOutlet weak var videoView : VideoPlay! 
    
         override func viewDidLoad() { 
           super.viewDidLoad() 
             let bundle: NSBundle = NSBundle.mainBundle() 
             let moviePath: String = bundle.pathForResource("yourVideoFile_Name", ofType: "yourVideoFile_Type")! 
             let movieUrl : NSURL = NSURL.fileURLWithPath(moviePath) 
    
             videoView.playVideoWithURL(movieUrl) 
    
    
          }.... 
        } 
    
  • videoViewはクラスVideoPlayに準拠しているので、あなたは VideoPlayのグローバルな機能にアクセスすることができます。メインバンドルIEでそれを維持、ビデオファイルを保持する場所については

: - あなたのケースでファイティングトレーナープロフォルダ

のような: -

toggleMute()

isMuted()

+0

どこにmp4ファイルを置く必要がありますか?また、ストーリーボードに何かをドラッグする必要がありますか? –

+0

ちょうどルーピングビデオクリップ、私はバックグラウンドビデオとルーピングビデオの違いは何か分かりません。 –

+0

違いはありませんが、videoPlayerに他のサブビューを追加する可能性はありますか?私は自分の答えを更新しました:) – Dravidian

関連する問題