一:AVPlayerViewController ---- 在第五章的最开始讲述的就是AVPlayerViewController,这个控制器在前面也没有好好说过,不过苹果给我们的关于AVPlayerViewController 下面就先看看AVPlayerViewController这个类的头文件的方法,我们对它的属性进行一个解释说明: File: AVPlayerViewController.h Framework: AVKit 有这个代理,这个代理方法就在下面 @protocol AVPlayerViewControllerDelegate; @class AVPlayerViewController 这个摘要说明了 AVPlayerViewController这个控制器的基本特征 @abstract AVPlayerViewController is a subclass of UIViewController API_AVAILABLE(ios(8.0)) @interface AVPlayerViewController : UIViewController // 简单的播放器AVPlayer属性 @
在iOS8中,iOS开发框架中引入了一个新的视频框架AVKit,其中提供了视频开发类AVPlayerViewController用于在应用中嵌入播放视频的控件。 于此同时,在iOS9中,MPMoviePlayerController与MPMoviePlayerViewController类也被完全易用,开发者使用AVPlayerViewController可以十分方便的实现视频播放的功能并在一些型号的 二、AVPlayerViewController的使用与其中方法属性解析 使用AVPlayerViewController首先需要引入两个框架,如下: #import <AVKit/AVKit.h * play = [[AVPlayerViewController alloc]init]; play.player = [[AVPlayer alloc]initWithURL:url]; AVPlayerViewController中还有如下属性和方法提供给开发者使用: //是否显示视频播放控制控件 @property (nonatomic) BOOL showsPlaybackControls
三、AVPlayerViewController AVPlayerViewController是对AVFoundation中的AVPlayer与AVPlayerLayer的封装,它是一个封装好的视图控制器 这个类在iOS8之后可用,解析如下: @interface AVPlayerViewController : UIViewController //视频播放器对象 @property (nonatomic *)playerViewController; //已经开始画中画时调用 - (void)playerViewControllerDidStartPictureInPicture:(AVPlayerViewController *)playerViewController; //开启画中画失败调用 - (void)playerViewController:(AVPlayerViewController *)playerViewController *)playerViewController; //已经结束画中画调用 - (void)playerViewControllerDidStopPictureInPicture:(AVPlayerViewController
系统提示用Use AVPlayerViewController in AVKit. 既然MPMoviePlayerViewController这个类已经过时了,我们就导入AVKit使用最新的类AVPlayerViewController如果这个类是9.0之后出的,我们就做兼容模式,如果 @available(iOS 8.0, *) open class AVPlayerViewController : UIViewController { 果然和我们预想的一样,果然是兼容iOS8.0的 let videoPlay = AVPlayerViewController() 发现AVPlayerViewController已经不像MPMoviePlayerViewController这样的初始化 let videoPlay = AVPlayer(url: videoUrl) let videoPlayController = AVPlayerViewController()
AVPlayerViewController是iOS8新增视频框架AVKit中的一个播放器类。 由于iOS9弃用前两种播放器类的原因,AVPlayerViewController也将变得更加常用。AVPlayerViewController适合开发播放界面要求不是很高的应用。 ,并跳转播放界面 AVPlayerViewController *avPlayerVC =[[AVPlayerViewController alloc] init]; avPlayerVC.player ,并跳转播放界面 AVPlayerViewController *avPlayerVC =[[AVPlayerViewController alloc] init]; avPlayerVC.player 不能作为局部变量被释放,否则无法播放成功 //解决1.AVPlayerViewController作为属性 //解决2:使用addChildViewController,AVPlayerViewController
4、AVPlayerViewController 它是Apple 帮我们封装好的可以一个视频播放控制器,它就有一个 @property (nonatomic, strong, nullable 的协议,它主要的是为画中画的设置的代理,前面介绍 AVPlayerViewController 的时候有看到过一个是否允许画中画的属性,具体什么是画中画相信大家都了解,看过直接的朋友应该都看到了这个技术点的具体应用 ; // 2、开始画中画 - (void)playerViewControllerDidStartPictureInPicture:(AVPlayerViewController *)playerViewController :(NSError *)error; // 4、即将结束画中画 - (void)playerViewControllerWillStopPictureInPicture:(AVPlayerViewController *)playerViewController; // 5、结束画中画 - (void)playerViewControllerDidStopPictureInPicture:(AVPlayerViewController
private var playerVC: AVPlayerViewController? private weak var parentVC: UIViewController? automaticallyWaitsToMinimizeStalling = true playerVC = AVPlayerViewController() playerVC 使用 AVPlayerViewController 展示,兼容全屏和手势控制。 private var playerVC: AVPlayerViewController? private weak var parentVC: UIViewController? automaticallyWaitsToMinimizeStalling = true playerVC = AVPlayerViewController() playerVC
当您将导航标记与AVPlayerViewController提供的AVPlayerItem对象相关联时,用户界面提供了用于导航每个组的选项。 AVPlayerViewController AVPlayerViewController显示AVPlayer对象的视频内容以及系统提供的播放控件。 AVPlayerViewControllerDelegate 播放器视图控制器委托协议定义了您可以实现的方法来响应与AVPlayerViewController对象相关联的媒体播放事件。
添加AVFoundation.framework框架 AvplayerViewController.h文件 #import <UIKit/UIKit.h> #import <AVFoundation /AVFoundation.h> @interface AvplayerViewController : UIViewController <AVAudioPlayerDelegate> { player; } - (IBAction) stopSong: (id) sender; - (IBAction) playSong: (id) sender; @end AvplayerViewController.m #import "AvplayerViewController.h" @implementation AvplayerViewController - (IBAction) playSong
你已经看到,如果你使用标准的 AVPlayerViewController,画中画几乎是自动的。 如果您的应用程序具有自定义播放控制器,则您需要做一些额外的工作来支持画中画。 接下来您将了解这一点。 要使用它而不是默认的 AVPlayerViewController,您需要更改点击视频调用的代码行。 这对于默认的 AVPlayerViewController 和自定义播放器控制器都是如此。 要摆脱困境,您需要添加播放器控制器恢复功能。 要使用 AVPlayerViewController 而不是自定义播放器控制器来测试画中画,请修改 CategoryListViewController 的 collectionView(_:didSelectItemAt
如果你想使用画中画,你需要使用 AVPlayerViewController,它属于 UIKit。 好处是你知道如何在 SwiftUI 和 UIKit 之间建立桥梁。 (_ uiViewController: AVPlayerViewController, context: Context) {} } 1) 您导入 AVKit,因为 AVPlayerViewController 2) 您定义了一个符合 UIViewControllerRepresentable 的结构,以便能够在 SwiftUI 中使用 AVPlayerViewController。 3) 与您目前看到的所有播放视频的方式一样,AVPlayerViewController 也需要一个播放器。 4) 你创建一个 AVPlayerViewController 的实例,设置它的播放器并返回实例。 这就是桥梁。
11 12 let avPlayer = AVPlayer(url:movieURL as URL) 13 let playerVC = AVPlayerViewController() 14 playerVC.player
customController.player = player controller = customController } else { let avController = AVPlayerViewController AVPlayerViewControllerDelegate { @objc func playerViewControllerShouldDismiss(_ playerViewController: AVPlayerViewController AVPlayerViewController, presentedViewController == playerViewController { return true func playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_ playerViewController: AVPlayerViewController return true } @objc func playerViewController( _ playerViewController: AVPlayerViewController
创建一个视频播放控制器 视频播放器是使用iOS原声<AVFoundation/AVFoundation.h>来实现视频的播放,创建一个视频播放控制器代码如下: -(AVPlayerViewController *)playerVC { if (_playerVC == nil) { //创建一个视频播放控制器 _playerVC = [[AVPlayerViewController
import AVKit.AVError import AVKit.AVKitDefines import AVKit.AVPictureInPictureController import AVKit.AVPlayerViewController
这些都可以通过 AVPlayerViewController 来实现。不过,如果想要进一步处理视频帧,那就要使用更底层的媒体框架来控制整个 pipeline。 2)使用 AVKit 和 AVFoundation 如果需要简单的播放 HDR 视频媒体渲染到 EDR,可以使用 AVPlayerViewController 渲染 AVPlayer,也可以使用 AVPlayer AVPlayer 的用法 示例代码如下: AVPlayerViewController 使用示例 AVPlayer+AVPlayerLayer 使用示例 如果需要实现实时视频效果,比如: 特效: Color
private func playVideo(at url: URL) { let player = AVPlayer(url: url) let vc = AVPlayerViewController
参考了这篇文章 Project 14 - Video Splash VideoSplash.gif 我学到了 创建一个AVPlayerViewController,并将其view放到背景中 之后结合AVPlayerViewController 设置好delegate对象,至少实现viewForZooming的代理方法 Project 6 - Video Player Video Player.gif 我学到了 AVPlayer:视频播放器实体 AVPlayerViewController
2)使用 AVKit 和 AVFoundation 如果需要简单的播放 HDR 视频媒体渲染到 EDR,可以使用 AVPlayerViewController 渲染 AVPlayer,也可以使用 AVPlayer 5)播放变速 AVPlayerView 和 AVPlayerViewController 开始支持播放速度控制的 menu,并且支持自定义倍速和文案的本地化。
.了解视频播放相关知识 Apple已经为我们提供了多种方法来实现视频播放,包括MPMoviePlayerController,MPMoviePlayerViewController,AVPlayer,AVPlayerViewController