在ios中为AV Player ViewController定义视图框架大小 [英] defining view frame size for AV Player ViewController in ios

查看:53
本文介绍了在ios中为AV Player ViewController定义视图框架大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在iOS中将视频作为背景播放?我遵循了这个问题如何使用Swift播放本地视频?,但是AV Player ViewController是一个控制器,不能让我决定包含视频的视图的位置和大小.它总是带有一些预定义的值.

How does one play a video as a background in iOS? I followed this question How to play a local video with Swift?, but AV Player ViewController is a controller and doesn't let me decide where and how big the view containing video is. It always takes some predefined values.

推荐答案

对于已经完成的项目,我已经完成了此工作,但是没有使用AVPlayerViewController-我只是将普通AVPlayer添加到视图的图层中.我有一个收藏夹视图,但您可以将视频插入到任何需要的图层上.尝试这样的事情:

I've got this working for a project that I've done but not with an AVPlayerViewController - just a plain AVPlayer that I add to a view's layer. I have a collection view but you can just insert the video on a layer wherever you want. Try something like this:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"my_local_file" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
self.avPlayerItem = [AVPlayerItem playerItemWithURL:fileURL];
self.avPlayer = [AVPlayer playerWithPlayerItem:self.avPlayerItem];
self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
self.avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.avPlayerLayer.frame = self.view.bounds;
[self.view.layer insertSublayer:self.avPlayerLayer below:self.collectionView.layer];
// could also try [self.view.layer insertSublayer:self.avPlayerLayer atIndex:0];
[self.avPlayer play];

基本上,将AVPlayerLayer.frame设置为所需的大小.

Basically, set the AVPlayerLayer.frame to the size that you want.

这篇关于在ios中为AV Player ViewController定义视图框架大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆