首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在swift中,视频不能在给定视图中全屏播放。我需要帮助来修复它

在swift中,视频不能在给定视图中全屏播放。我需要帮助来修复它
EN

Stack Overflow用户
提问于 2021-11-03 06:30:15
回答 1查看 44关注 0票数 0

我有一个视图,播放应用程序中的视频。给出的约束是正确的,但在像iPhone 11,iPhone 11 pro这样的设备中,视图在后端留下了一些空间。添加截图以供参考。

*需要帮助将视频显示设置为全视图。

约束:对齐尾部安全区域对齐顶部安全区域对齐前导安全区域高度等于- 150

代码:

代码语言:javascript
复制
import UIKit
import AVFoundation
    
class VideoViewController: UIViewController {
@IBOutlet weak var videoView: UIView!  
    
var player: AVQueuePlayer!
var playerItem: AVPlayerItem!
var playerLooper: AVPlayerLooper!
    
override func viewDidLoad() {
   super.viewDidLoad()
    videoView()
}

func videoViewForLogin() {
//video 
 guard let url = Bundle.main.url(forResource: "splashpanoslice", withExtension: "mp4") else {return}
let playerPath = AVPlayer(url: url)
player = AVQueuePlayer()
let playerLayer = AVPlayerLayer(player: player)
playerItem = AVPlayerItem(url: url)
let duration = Int64( ( (Float64(CMTimeGetSeconds(AVAsset(url: url).duration)) *  10.0) - 1) / 10.0 )
playerLayer.frame = videoView.bounds
playerLooper = AVPlayerLooper(player: player, templateItem: playerItem,                                          timeRange: CMTimeRange(start: CMTime.zero, end: CMTimeMake(value: duration, timescale: 1)) )
playerLayer.videoGravity = .resizeAspectFill
         videoView.layer.insertSublayer(playerLayer, at: 1)
player.play()
  }
}

函数代码取自引用- How do i make a looping video in swift

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 07:28:35

既然你正在使用框架,我认为你应该尝试将布局代码移到比viewDidLoad()更晚的地方。当视图大小被确定并且当显示参数改变(例如,屏幕方向已经改变)时也无效时,可能是viewDidLayoutSubviews()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69820507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档