简体   繁体   English

在视图控制器中播放视频

[英]Play video in view controller

FYI, I am using this Github Player: https://github.com/piemonte/Player 仅供参考,我正在使用此Github Player: https : //github.com/piemonte/Player

I am trying to play a video, but it wont work. 我正在尝试播放视频,但无法正常工作。 On the View Controller's UIView i use background color blue, and when I run this project, I only see a bue background without a player. 在View Controller的UIView我使用蓝色背景色,当我运行此项目时,我只看到没有播放器的bue背景。 This is my code: 这是我的代码:

import UIKit
import Player
import AVFoundation

class ViewController: UIViewController, PlayerDelegate {

    @IBOutlet var myView: UIView!

    private var player: Player!

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

        let fileUrl = NSURL(string: "https://parseapi.back4app.com/files/SAQY2fBCiob9UMqITqAEMo7UxNsU6MCCUURf53Ee/d349a0bdd0962cb0f570c95621aee6df_video.mp4")

        self.player = Player()
        self.player.delegate = self
        player.view.frame.size.width = UIScreen.mainScreen().bounds.size.width
        player.view.frame.size.height = player.view.frame.size.width

        player.fillMode = AVLayerVideoGravityResizeAspectFill
        player.view.sizeToFit()
        myView.addSubview(player.view)

        let videoUrl: NSURL = fileUrl!
        self.player.setUrl(videoUrl)
        self.player.playFromBeginning()

        self.player.playbackLoops = true

        let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTapGestureRecognizer:")
        tapGestureRecognizer.numberOfTapsRequired = 1
        self.player.view.addGestureRecognizer(tapGestureRecognizer)
    }

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

    // MARK: PlayerDelegate Start

    func handleTapGestureRecognizer(gestureRecognizer: UITapGestureRecognizer) {
        switch (self.player.playbackState.rawValue) {
        case PlaybackState.Stopped.rawValue:
            self.player.playFromBeginning()
        case PlaybackState.Paused.rawValue:
            self.player.playFromCurrentTime()
        case PlaybackState.Playing.rawValue:
            self.player.pause()
        case PlaybackState.Failed.rawValue:
            self.player.pause()
        default:
            self.player.pause()
        }
    }

    func playerReady(player: Player) {
    }

    func playerPlaybackStateDidChange(player: Player) {
    }

    func playerBufferingStateDidChange(player: Player) {
    }

    func playerPlaybackWillStartFromBeginning(player: Player) {
    }

    func playerPlaybackDidEnd(player: Player) {
    }

    /* override func awakeFromNib() {

     self.collectionView.autoresizesSubviews = true
     self.collectionView.autoresizingMask = UIViewAutoresizing.FlexibleWidth
     self.collectionView.translatesAutoresizingMaskIntoConstraints = true
     }*/

    // MARK: PlayerDelegate Stop
}

Attempt nr 2: 尝试nr 2:

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

        let fileUrl = NSURL(string: "https://parseapi.back4app.com/files/SAQY2fBCiob9UMqITqAEMo7UxNsU6MCCUURf53Ee/d349a0bdd0962cb0f570c95621aee6df_video.mp4")

        self.player = Player()
        self.player.delegate = self
        self.player.view.frame = self.view.bounds

        self.addChildViewController(self.player)
        self.view.addSubview(self.player.view)
        self.player.didMoveToParentViewController(self)

        let videoUrl: NSURL = fileUrl!
        self.player.setUrl(videoUrl)
        self.player.playFromBeginning()

        self.player.playbackLoops = true

        let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTapGestureRecognizer:")
        tapGestureRecognizer.numberOfTapsRequired = 1
        self.player.view.addGestureRecognizer(tapGestureRecognizer)
    }

When I try to open the link in Safari, it doesn't work, but in Chrome it works fine.. Any suggestions what might be wrong? 当我尝试在Safari中打开链接时,它不起作用,但是在Chrome中,它可以正常工作。.有什么建议可能是错的吗?

Actually the player is not actually added to your view yet. 实际上,播放器尚未真正添加到您的视图中。

Please follow this to add this on your view as a sub-viewcontroller. 请按照此步骤将其作为子视图控制器添加到您的视图中。

 self.player = Player()
 self.player.delegate = self
 self.player.view.frame = self.view.bounds

 self.addChildViewController(self.player)
 self.view.addSubview(self.player.view)
 self.player.didMoveToParentViewController(self)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM