我正在使用player-swift
(那个:https://github.com/piemonte/Player)在我的应用中显示视频内容。我创建了UIViewController
,在其中添加了view
并为其分配了名为PlayerView
的类。到目前为止一切都很好。
在我的代码中,我按如下方式启动了它:
self.videoPlayer = Player()
self.videoPlayer.delegate = self
self.videoPlayer.view.frame = myVideo.bounds
self.addChildViewController(self.videoPlayer)
myVideo.addSubview(self.videoPlayer.view)
self.videoPlayer.didMoveToParentViewController(self)
let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapGestureRecognizer(_:)))
tapGestureRecognizer.numberOfTapsRequired = 1
self.videoPlayer.view.addGestureRecognizer(tapGestureRecognizer)
self.videoPlayer.fillMode = "AVLayerVideoGravityResizeAspectFill"
self.videoPlayer.setUrl(url)
self.videoPlayer.playFromBeginning()
self.videoPlayer.playbackLoops = true
现在,由于我正在播放的视频格式为480x640(纵向模式),我考虑分配以下约束:
现在,当我在iphone 6s plus上打开它时,我看到了:
所以 - 因为我把尾随空格设置为0 - 为什么屏幕右侧还有这条白色条纹?
另一方面,在iphone 4s上,视频被裁剪:
在iphone 6上很好:
我应该采用什么样的约束条件,以便它在每台设备上看起来与iphone 6相同?我只是想让它水平拉伸,然后垂直长度应自动调整(以保持宽高比480x640)
============================================== < / p>
伙计们,正如我在下面的评论部分所写的那样 - 当我移除玩家并使用相同的约束离开普通视图时 - 一切正常,所以它必定是玩家本身的错...你能帮助我区分什么那可能是错的?
============================================== < / p>
在我的Storyboard
中,我将playerView
的颜色设置为浅灰色。我再次运行模拟器,我看到了:
这意味着还有一些其他图层可以存储玩家视图本身。我浏览了插件的代码,发现了这个:
public override func loadView() {
self.playerView = PlayerView(frame: CGRectZero)
self.playerView.fillMode = AVLayerVideoGravityResizeAspect
self.playerView.playerLayer.hidden = true
self.view = self.playerView
}
此处https://github.com/piemonte/Player/blob/master/Sources/Player.swift
所以我假设我需要以某种方式设置约束:self.playerView.playerView
。但是我怎么能这样做呢?
答案 0 :(得分:0)
侧边距的约束必须为-20所以视频可以全屏显示,0留下额外的空间,你可以看到这个如果你将视图拖到边缘的边缘,我建议ctrl拖动到主视图和与他的超级视图相等的宽度