【问题标题】:Embedding an AVPlayerViewController into a UIView将 AVPlayerViewController 嵌入到 UIView
【发布时间】:2018-06-11 10:53:20
【问题描述】:

我正在尝试在 UIView 内播放视频,但视频播放器总是出现在我嵌入 AVPlayerViewController 的 UIView 之外。

以下是我目前所拥有的......

class ViewController: UIViewController {

    let smallVideoPlayerViewController = AVPlayerViewController()

    @IBOutlet weak var videoView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let myFileManager = FileManager.default
        let mainBundle = Bundle.main
        let resourcesPath = mainBundle.resourcePath!

        guard let allItemsInTheBundle = try? myFileManager.contentsOfDirectory(atPath: resourcesPath) else {
            return
        }

       let videoName = "test"

       let videoPath = Bundle.main.path(forResource: videoName, ofType: "mp4")
       let videoUrl = URL(fileURLWithPath: videoPath!)

       smallVideoPlayerViewController.showsPlaybackControls = false
       smallVideoPlayerViewController.player = AVPlayer(url: videoUrl)

       videoView.addSubview(smallVideoPlayerViewController.view)

       smallVideoPlayerViewController.view.frame = videoView.frame

       smallVideoPlayerViewController.player?.play()
    }
 ...
}

UIView 的背景颜色设置为白色。从截图中可以看出,AVPlayer 在 UIView 之外。

我尝试手动设置 AVPlayer 的尺寸和位置,但也没有成功。

我正在使用 Xcode 9.2。该项目没有关于任何布局问题的警告。

我怎样才能完美对齐 AVPlayer,这样它就会出现在 UIView 中。

谢谢

【问题讨论】:

    标签: ios swift uiview avplayer xcode9.2


    【解决方案1】:

    改变这一行:

    smallVideoPlayerViewController.view.frame = videoView.frame
    

    到这里:

    smallVideoPlayerViewController.view.frame = videoView.bounds
    

    原因是因为 videoView.frame 在其父视图中包含您不想要的原点。 videoView.bounds 只是原点为 0,0 的大小。

    当然,您可能还想进一步设置自动调整大小的蒙版以保持视频播放器帧相同,如下所示:

    smallVideoPlayerViewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    

    甚至是完全成熟的自动布局。

    【讨论】:

    • 宾果游戏,因此 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2020-01-09
    • 2013-01-19
    • 1970-01-01
    • 2020-12-11
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多