【问题标题】:Button triggering video to open and play按钮触发视频打开和播放
【发布时间】:2016-05-31 21:40:57
【问题描述】:

我对编码很陌生,没有经验。 我找到了一种播放视频的方法,但它会自动播放/自动打开。我需要视频仅在按下按钮时打开和播放。请有人帮我调整我的代码来做到这一点。

这是我当前的代码:

import UIKit
import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController {


    var playerviewcontroller = AVPlayerViewController()
    var playerview = AVPlayer ()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    }

    override func viewDidAppear(animated: Bool) {
        var fileURL = NSURL(fileURLWithPath:"/Users/MorganEvans/Documents/Apps/Warm Up/Video View/Video View/ViewController.swift")
        playerview = AVPlayer(URL: fileURL)

        playerviewcontroller.player = playerview

        self.presentViewController(playerviewcontroller, animated: true){

            self.playerviewcontroller.player?.play()
        }


    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

【问题讨论】:

    标签: ios swift button video


    【解决方案1】:

    试试这个:

    @IBAction func playMusic(sender: AnyObject) {
        var fileURL = NSURL(fileURLWithPath:"/Users/MorganEvans/Documents/Apps/Warm Up/Video View/Video View/ViewController.swift")
        playerview = AVPlayer(URL: fileURL)
    
        playerviewcontroller.player = playerview
    
        self.presentViewController(playerviewcontroller, animated: true){
    
            self.playerviewcontroller.player?.play()
        }
    }
    

    您可以简单地将其放在您的 ViewController 中的任何位置,只要它不在另一个函数中。

    然后将其与情节提要中的按钮连接:

    【讨论】:

    • 这太完美了!非常感谢!我非常感谢屏幕截图。当我在 iPhone 上预览应用程序时,视频无法播放。请帮忙
    • 它是否与您的原始代码一起使用?另外,尝试在 IBAction 中放置一个 print("function ran")
    • 只能在模拟器中使用原始代码在iphone上播放。
    • 看看这个类似的问题:stackoverflow.com/questions/34265411/…
    • 所以我添加了 func getDocumentsURL() -> NSURL { let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] return documentsURL } func fileInDocumentsDirectory(filename: String ) -> String { 让 fileURL = getDocumentsURL().URLByAppendingPathComponent(filename) 返回 fileURL.path! }
    【解决方案2】:

    这是一个按钮的外观,这个例子是从 Firebase 中提取一部电影,但除此之外,它的外观是这样的

    @IBAction func playV(sender: UIButton) {
       
            
    
         
              
                let amovieUrl:NSURL? = NSURL(string: "https://firebasestorage.googleapis.com/v0/b/messenger-test-d225b.appspot.com/o/test%2FTestVideo.mov?alt=media&token=bd4ccba3-b446-43bc-809e-b1152aa3c2ff")
                if let aurl = amovieUrl {
                    self.avPlayer = AVPlayer(url: aurl as URL)
                self.avPlayerViewController.player = self.avPlayer
            
    self.present(self.avPlayerViewController, animated: true) { () -> Void in
            self.avPlayerViewController.player?.play()
    
       
    }
    
    }
    

    }

    【讨论】:

      【解决方案3】:
      1. 创建操作连接as explained here
      2. viewDidAppear 中的代码移至您在步骤 1 中创建的操作。
      3. 利润。

      另外,您不需要 viewDidLoaddidReceiveMemoryWarning 的默认实现:

      import UIKit
      import AVKit
      import AVFoundation
      
      class ViewController: UIViewController {
      
      var playerviewcontroller = AVPlayerViewController()
      var playerview = AVPlayer ()
      
      @IBAction func yourActionForButton(sender: UIButton) {
          // Your code.
      }
      

      【讨论】:

      • 您好,感谢您的帮助。所以我已经做到了这一点:@IBAction func Button(sender: AnyObject) 但是我应该把代码放在哪里呢?很抱歉很痛苦谢谢
      猜你喜欢
      • 2019-03-08
      • 1970-01-01
      • 2011-12-08
      • 2017-07-19
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多