在iOS9中,不推荐使用MPMoviePlayer类,而推荐使用AVPlayer。我有一个使用MPMoviePlayerPlaybackDidFinishReasonUserInfoKey的现有应用程序来确定如何记录有关视频播放器如何结束的事件。我如何对AVPlayer进行相同操作?
以下是结束原因键:
我想在我的一个应用程序中播放全屏视频作为背景.问题是视频占用了大量空间.什么分辨率和格式最适合ios应用程序?主要标准是文件大小和加载时间.
我正在使用编写的视频播放器应用程序Swift。
我的问题是我应该使AVPlayerViewController弯道弯曲。但我只想使用AVPlayerViewController任何其他类。
我现在做了什么:
fileprivate func setupPlayer() {
let player = AVPlayer(url: videoURL)
let playerViewController = AVPlayerViewController()
playerViewController.view.frame = CGRect.init(x: xPosition,
y: yPosition,
width: 200,
height: 100)
playerViewController.player = player
self.addChild(playerViewController)
self.view.addSubview(playerViewController.view)
playerViewController.didMove(toParent: self)
playerViewController.videoGravity = AVLayerVideoGravity.init(rawValue: "")
playerViewController.view.backgroundColor = UIColor(displayP3Red: 0/255, green: 0/255, blue: 0/255, alpha: 0)
playerViewController.view.layer.cornerRadius = 20
playerViewController.contentOverlayView?.isHidden = true
playerViewController.contentOverlayView?.alpha = 0
}
Run Code Online (Sandbox Code Playgroud)
但我想在Appstore中有一些曲线:
如何在iOS中将视频作为背景播放?我关注了这个问题:如何使用Swift播放本地视频?,但AV Player ViewController是一个控制器,不能让我决定包含视频的视图的位置和大小。它始终采用一些预定义的值。
尝试创建一个简单的应用程序来在iPhone上播放视频(Xcode 7.3,swift iOS9),我只是想在添加代码加载内容之前让播放器出现.
使用storyboard,创建一个按钮并对AVViewController对象进行segue(show).当应用程序在设备上运行并按下按钮时,我得到:
"由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'无法实例化名为AVPlayerViewController的类'"
在声明我的ViewContrller:UIViewController类之前,我有:import UIKit,导入AVKit并导入AVFoundation.少了什么东西?我怀疑还需要输入其他东西,但我的研究只是根据需要调出了AVKit和AVFoundation.
我的申请面临着奇怪的问题.实际上,当我呈现视频控制器播放视频时.在视频加载时,用户按下菜单按钮,应用程序转到后台.虽然我已经覆盖菜单按钮操作.
这是我的代码.
override func viewWillAppear(animated: Bool) {
let menuPressRecognizer = UITapGestureRecognizer()
menuPressRecognizer.addTarget(self, action: #selector(VideoPlayerViewController.menuButtonAction(_:)))
menuPressRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.hashValue)]
self.playerController.view.addGestureRecognizer(menuPressRecognizer)
}
func menuButtonAction(ges:UITapGestureRecognizer) {
self.dismissView()
}
Run Code Online (Sandbox Code Playgroud) focus presentviewcontroller swift avplayerviewcontroller tvos
目前我正在使用底部有四个控件的对话视图.每个控件都在对话框中加载不同的视图.其中一个控件是AVPlayer在对话视图中设置并正在播放它.不幸的是,AVPlayer它本身没有播放控件.
该AVPlayerViewController怎么过确实有播放控制.是否有可能将一个 AVPlayerViewController 内部的 UIView ,这样它不会开始作为一个新的屏幕? 我想把它放在我的内部,UIView所以一切都发生在我的拨号内.
我正在使用以下代码创建一个启用分页的垂直滚动视图,该视图工作正常。现在我想将 AVPlayer (?) 类型的子视图添加到homeView, view2, view3。我也可以放入效果很好setupCustomPlayer()的initiateScrollView()功能。然而,它不附属于任何先前提到的视图。如果我尝试使用该函数添加子视图,addSubview(anything)它会告诉我需要一个 UIView。我需要 UIViews,因为垂直滑动提要非常重要。有人知道如何将其添加为子视图吗?该视频将覆盖整个屏幕并作为一种背景视频可以说(如果您想知道)
func setupCustomPlayer() {
print("check")
AVPlayerVC.view.frame = self.view.frame
AVPlayerVC.view.sizeToFit()
AVPlayerVC.showsPlaybackControls = false
self.view.addSubview(AVPlayerVC.view)
let videoURL = NSURL(string: "http://URL")
let player = AVPlayer(url: videoURL! as URL)
AVPlayerVC.player = player
AVPlayerVC.player?.play()
}
func initiateScrollView() {
//create scrollView with paging enabled
let scrollView = UIScrollView(frame: view.bounds)
scrollView.isPagingEnabled = true
view.addSubview(scrollView)
//do not show vertical scroll indicator
scrollView.showsVerticalScrollIndicator = false;
//get page size
let pageSize = …Run Code Online (Sandbox Code Playgroud) 我正在研究一种解决方案,在搜索栏可见时在屏幕上显示一些元素。
我有一个 AVPlayerViewController 和一个播放视频的 AVPlayer。我想在搜索栏可见时显示一些组件,并在隐藏搜索栏时隐藏它们。
当搜索栏可见/隐藏时,有没有办法得到通知?
提前致谢。
在登录屏幕上,我必须以全分辨率显示背景视频。我可以通过在黑色区域双击下面的图像来做到这一点。
这是我需要的结果。但这不是通过编码完成的。我只是通过双击黑色区域来做到这一点。

这是我的这门课的代码。
class loginViewController: UIViewController {
@IBOutlet weak var videoView: UIView!
let player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = true
let myFileManager = FileManager.default
let mainBundle = Bundle.main
let resourcesPath = mainBundle.resourcePath!
guard let allItemsInTheBundle = try? myFileManager.contentsOfDirectory(atPath: resourcesPath) else {
return
}
let videoName = "login_video"
let videoPath = Bundle.main.path(forResource: videoName, ofType: "mp4")
let videoUrl = URL(fileURLWithPath: videoPath!)
let player = AVPlayer(url: videoUrl)
let controller=AVPlayerViewController()
controller.player=player
let playerLayer = AVPlayerLayer(player: self.player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill;
controller.showsPlaybackControls …Run Code Online (Sandbox Code Playgroud)