2016-06-24 6 views
0

ローカルのビデオを新しいView Controllerにロードするようにしましたが、ヒットした後は消えてすぐに再びポップアップします。通知を追跡する手段があるかどうか、私は知らない。あなたはViewControllerをのためViewDidAppearの内側にあなたのコード終了後にAV Playerを停止する

let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4") 
    playerView = AVPlayer(url: fileURL as URL) 
    playerViewController.player = playerView 
    self.present(playerViewController, animated: true){ 
     self.playerViewController.player?.play() 
    } 

を入れ

import UIKit 
import AVKit 
import AVFoundation 

class VideoController1: UIViewController { 

    var playerViewController = AVPlayerViewController() 
    var playerView = AVPlayer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4") 
     playerView = AVPlayer(url: fileURL as URL) 
     playerViewController.player = playerView 
     self.present(playerViewController, animated: true){ 
      self.playerViewController.player?.play() 
     } 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
} 
+1

ブールを1回だけ表示するようにしてください。 viewDidAppearは、ビューが表示されるたびに呼び出され、したがってavプレーヤーがポップアップします。 – Shubhank

答えて

0

は、ここに私のコードです。

ViewDidAppear()は、ビューが画面上に再び表示されたときに発生します。つまり、AVPlayerを閉じると、そのViewに戻り、AVPlayerが再び表示されます。

あなたは2つのオプションがあります:あなたは、コントローラは、初回のみ再生したい場合は

- - OR

をそのボタン

var button = UIButton(frame: CGRect(0, self.view.frame.height*0.9, self.view.frame.width, self.view.frame.height*0.1)) 
button.addTarget(self, #selector(VideoController1.playController), nil) 
self.view.addSubview(button)  

let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4") 

func playController() { 
    playerView = AVPlayer(url: fileURL as URL) 
    playerViewController.player = playerView 
    self.present(playerViewController, animated: true){ 
     self.playerViewController.player?.play() 
    } 
} 

にUIButtonとアクションを作りますユーザーはそのビューを見て、それを実行することができます。

var played = false 

func viewDidAppear() { 
    if(!played) { 
     let fileURL = NSURL(fileURLWithPath: "/Users/jamesjarrett/Desktop/NIMS/NIMS/NIMS/Vid2.mp4") 
     playerView = AVPlayer(url: fileURL as URL) 
     playerViewController.player = playerView 
     self.present(playerViewController, animated: true){ 
      played = true 
      self.playerViewController.player?.play() 
     } 
    } 
} 

上記のコードは、あなたに一般的なアイデアを与えるために素早く入力しました。

+0

ありがとうございました! –

+0

:)自由にupvoteして、答えを好き! – impression7vx

+0

私はインターフェイスにボタンを追加しようとしていましたが、あなたが言及した最初のメソッドを使用しようとしましたが、それはすぐにそのように見える –

関連する問題