gpt4 book ai didi

ios - 在 View Controller 中播放视频

转载 作者:行者123 更新时间:2023-11-30 13:29:15 28 4
gpt4 key购买 nike

仅供引用,我正在使用这个 Github 播放器:https://github.com/piemonte/Player

我正在尝试播放视频,但无法播放。在 View Controller 的 UIView 上,我使用背景色蓝色,当我运行这个项目时,我只看到一个没有播放器的 bue 背景。这是我的代码:

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
}

尝试 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)
}

当我尝试在 Safari 中打开该链接时,它不起作用,但在 Chrome 中它工作正常。.有什么建议可能是错误的吗?

最佳答案

实际上,播放器尚未真正添加到您的 View 中。

请按照此操作将其作为 subview Controller 添加到您的 View 中。

 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)

关于ios - 在 View Controller 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com