首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在swift项目中使用VideoPlayer

我正在尝试在单元格中显示视频。相反,它只是作为一个黑盒出现。有可能没有初始化播放器。但是,我确实看到了黑框,所以我知道它正在初始化VideoPlayerView。当我打印playerLayer的帧时,它打印(0.0,0.0,0.0,0.0),可能是由于我初始化视图的方式。有没有办法在不使用frame的情况下将playerlayer扩展到视图的边缘?

代码语言:javascript
运行
AI代码解释
复制
class VideoPlayerView : UIView {

override init(frame: CGRect) {
    super.init(frame: frame)

    backgroundColor = UIColor.black

    let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
    let player = AVPlayer(url: videoURL!)

    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.frame = self.bounds
    //print(playerLayer.frame)

    self.layer.addSublayer(playerLayer)

    player.play()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

}

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2017-08-08 04:27:54

我尝试了几种不同的方法,最后使用了一个自定义的UIView类方法(就像您一样),但有一些不同之处。例如,您的类可能如下所示:

代码语言:javascript
运行
AI代码解释
复制
class PlayerView: UIView {
    var player: AVPlayer? {
        get {
            return playerLayer.player
        }
        set {
            playerLayer.player = newValue
        }
    }

    var playerLayer: AVPlayerLayer {
        return layer as! AVPlayerLayer
    }

    // Override UIView property
    override static var layerClass: AnyClass {
        return AVPlayerLayer.self
    }
}

然后,在IB中添加一个UIView,将类设置为PlayerView (而不是默认的UIView),添加像normal这样的约束,并像其他控件一样将一个插座拖到控制器上。要使用它,请执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
playerView.player = AVPlayer(url: url)
playerView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill

然后在您的应用程序需要时触发Play命令。

您可以使用相同的方法动态创建此视图,但我倾向于大多数时间使用IB。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2017-08-08 00:26:12

您可以将约束设置为playerLayer,例如:

代码语言:javascript
运行
AI代码解释
复制
let width = UIScreen.main.bounds.width
let height = 300

let playerLayer = AVPlayerLayer(player: player)
playerLayer.translatesAutoresizingMaskIntoConstraints = false
playerLayer.widthAnchor.constraint(equalToConstant: width).isActive = true
playerLayer.heightAnchor.constraint(equalToConstant: height).isActive = true
票数 0
EN

Stack Overflow用户

发布于 2017-08-08 04:48:27

我想你所需要做的就是添加下面的代码:

当你调整大小时,它不会自动调整图层大小。

代码语言:javascript
运行
AI代码解释
复制
override func layoutSublayers(of layer: CALayer) {
    super.layoutSublayers(of: layer)
    playerLayer?.frame = self.bounds
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45557468

复制
相关文章
【脚本】配置yum源的repo文件
执行前需要把centos的镜像和iaas的镜像 上传到/root上,如果其他地方,可以去脚本里修改目录
Xiongan-桃子
2023/06/10
5850
R-批量文件读取
文件的批量读取,一般在拿到数据时,如果是大批量的数据,那么就需要多次的读取 10个文件以为的内容通过10行的内容可以读取,但是如果是上百个文件,那么读取的 时候就比较复杂,解决思路是通过循环进行读取
火星娃统计
2020/09/15
6940
修改IDEA国际化文件的Unicode字符成汉字
把√打上!
JavaEdge
2021/02/22
4540
修改IDEA国际化文件的Unicode字符成汉字
Unicode 字符串
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
用户8442333
2021/05/27
1K0
Unicode不可见字符
不可见字符”\u200b”为 Unicode Character ‘ZERO WIDTH SPACE’ (U+200B),可用于内容标识,不占位数。
周小董
2019/03/25
5.6K0
Unicode不可见字符
R-脚本命名和管理推荐
有经验的前辈,R里的脚本都是step0、step1、step2,一清二楚,相关内容都集中在Rproject里;
生信技能树
2019/05/22
1.1K0
R-脚本命名和管理推荐
Python查找包含指定字符串的所有文件
代码功能: 查找包含指定字符串的所有文件。 技术要点: 1)广度优先遍历目录树; 2)检查文件中是否包含特定的字符串。 运行效果:
Python小屋屋主
2019/12/13
3.2K0
Python查找包含指定字符串的所有文件
通达OA文件包含全版本 getshell | Nmap 脚本
今天就做了全版本匹配,但是我发现似乎只有 v11 和 2017 版本存在文件包含漏洞,文件上传是都存在的,但不是web目录(webroot) 所以今天更新了一下 2017 版本的利用,顺便改了一下result的值和拼错了的 nothing
意大利的猫
2020/08/20
1.5K0
unicode字符串解析
在http接口接收时,很多接口提供方都喜欢把汉字通过unicode的方式传过来,而数字和字母保持不变,就像这样。
逝兮诚
2019/10/30
1.4K0
字符编码ascii、unicode、ut
计算机是美国人发明和最早使用的,他们为了解决计算机处理字符串的问题,就将数字字母和一些常用的符号做成了一套编码,这个编码就是ASIIC码。ASIIC码包括数字大小写字母和常用符号,一共128个,1字节(byte)=8bit,8bit能表示的最大数是256,所以ASIIC编码中一个字符的大小就是1个字节
py3study
2020/01/19
9570
Word反查字符的unicode码
最近写字符处理的相关程序,需要和字符编码打交道,Windows自带的字符映射表只能通过unicode码查找字符,但是测试时通常要通过字符查找其unicode码,使用起来很不方便。
极客中心
2021/01/21
1.5K0
Word反查字符的unicode码
shell 脚本统计文件夹下所有文件的字符数
最近写了一些文章存放在一个文件夹下,今天想看看自己到底写了多少内容。于是想写一个脚本来进行统计。最终代码如下:
FungLeo
2019/05/26
2.5K1
小师妹学JavaIO之:文件编码和字符集Unicode
小师妹一时兴起,使用了一项从来都没用过的新技能,没想却出现了一个无法解决的问题。把大象装进冰箱到底有几步?乱码的问题又是怎么解决的?快来跟F师兄一起看看吧。
程序那些事
2020/07/08
5920
字符串包含
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
1.4K0
文件包含漏洞与文件包含Bypass漏洞基础
服务器通过PHP的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到攻击的目的。
天钧
2020/03/12
3.2K0
Unicode中的空格字符一览(翻译)
本文列出了 Unicode 中的各种空格字符。有关说明, 还请参阅 Unicode 标准中的 第6章 书写系统和标点符号 还有Unicode标准中的 一般标点符号的区段描述 。本文还列出了3个宽度为0的字符, 故可称其为零宽度空格。
Kitov
2022/09/28
10.8K0
Unicode中的空格字符一览(翻译)
Python 中文转Unicode字符串
Python 3.6 代码: # -*- coding: utf-8 -* def to_unicode(string): ret = '' for v in string: ret = ret + hex(ord(v)).upper().replace('0X', '\\u') return ret print(to_unicode("中国")) 输出: "D:\Program Files (x86)\Python36-32\python.exe" E:
py3study
2020/01/13
2.7K0
java---Unicode-字符转换器
实现一个字符(包括汉字)的简单互相转换; package cn.hncu.gui2; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionL
谙忆
2021/01/20
1.1K0
java---Unicode-字符转换器
艺术鬼才!Unicode 字符还能这么玩?
上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞。
andyxh
2020/07/28
1.9K0
Go 中文和unicode字符之间转换
Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
孤烟
2020/09/27
5.3K0

相似问题

在不同的表单之间切换

20

使用无线输入在部分表单之间切换

216

bounds.size.width与bounds.width在between中的区别?

12

在表单之间切换

12

在表单之间切换

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档