AVKit框架

2017-11-21  本文已影响353人  寻形觅影

AVKit框架基于AVFoundation框架,提供了一个用于播放视频内容的高级界面,创建用于媒体播放的视图级服务。主要包含两个类:AVPictureInPictureControllerAVPlayerViewController

一、AVPlayerViewController

AVPlayerViewController类继承与UIViewController,在iOS 8.0之后可以使用,用来代替MPMoviePlayerController(iOS 9.0后被废弃)。用于显示AVPlayer对象的视频内容以及系统提供的播放控制。

以上属性是8.0后就可以使用,下面是关于实现画中画效果的属性和方法,对于SDK要求比较高(所谓画中画,即是用户可以将当前播放的视频缩小放在屏幕上同时进行其他应用程序的使用,画中画仅在iPad上可用)

AVPlayerViewControllerDelegate代理方法:

简单示例:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    playerVC = [[AVPlayerViewController alloc] init];
    // 本地文件
//    NSURL * playerURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test"  ofType:@"mp4"]];
    // 网络资源
    NSURL * playerURL = [NSURL URLWithString:@"http://103.18.209.144/vhot2.qqvideo.tc.qq.com/AbGiL-wj27eJwdsfQXSfTHJzXd7a2v4iEN2oZpBfSh1I/o01836xm9bv.p702.1.mp4?sdtfrom=v1010&guid=fc947bf167ab7aa7ec24d7523d73b91b&vkey=BA71FD41E98CE214630AB773019FBCFDCA1653725707A23E819DE057AE20C4C94250FA0B0C1E63031FB89621068D2218C43BDEDF7E0421B31B667CD8621ABD4032617463E3F169876D39BFA50AFCD0CD710B8D68501140A62E4E1BC7746997EF8F43E4710BC4D53C376676B0CFB9E3F3CD97213F7DF356F6"];
    playerVC.player = [AVPlayer playerWithURL:playerURL];
    playerVC.delegate = self;
    playerVC.allowsPictureInPicturePlayback = YES;
    if (@available(iOS 11.0, *)) {
        playerVC.entersFullScreenWhenPlaybackBegins = YES;
        playerVC.exitsFullScreenWhenPlaybackEnds = YES;

    } else {
        // Fallback on earlier versions
    }
    [self presentViewController:playerVC animated:YES completion:nil];
}

- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(void (^)(BOOL))completionHandler
{
    [self presentViewController:playerVC animated:YES completion:^{
        completionHandler(YES);
    }];
}
屏幕快照 2017-10-26 下午4.15.34.png

二、AVPictureInPictureController

AVPictureInPictureController是NSObject的一个子类,可用于呈现浮动在应用程序之上的AVPlayerLayer的内容。主要针对使用自定义AVPlayer播放的画中画设置。


以下为代理方法:AVPictureInPictureControllerDelegate

上一篇 下一篇

猜你喜欢

热点阅读