从 AVPlayerViewController 中删除 QuickTime 图标

jp1*_*987 4 ios avplayer swift avplayerviewcontroller

我正在构建一个屏幕,用户可以在其中使用 AVPlayerViewController 播放音频文件。问题是我无法去掉播放器视图中的 QuickTime 徽标,请参见屏幕截图:

在此输入图像描述

我的代码:

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    try AVAudioSession.sharedInstance().setActive(true)
    guard let url = URL(string: filePath!) else {
        return
    }

    let player = AVPlayer(url: url)
    let controller = AVPlayerViewController()
    controller.modalPresentationStyle = .overFullScreen
    controller.player = player

    self.present(controller, animated: true) {
        player.play()
    }
} catch {
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 添加 UIImageView controller.contentOverlayView?.addSubView(),但无法正确居中。如何自定义播放器的布局,而无需从头开始构建自己的界面?

mat*_*att 5

您尝试的方法是正确的:只需将子视图添加到内容覆盖视图即可。但是您遗漏了一步:您必须同时给出子视图和内容覆盖视图约束,以使它们完全覆盖播放器控制器\xe2\x80\x99s视图。

\n\n

示例(我的av是你的controller):

\n\n
            let iv = UIView()\n            iv.backgroundColor = .white\n            av.contentOverlayView!.addSubview(iv)\n            let v = av.contentOverlayView!\n            iv.translatesAutoresizingMaskIntoConstraints = false\n            NSLayoutConstraint.activate([\n                iv.bottomAnchor.constraint(equalTo:v.bottomAnchor),\n                iv.topAnchor.constraint(equalTo:v.topAnchor),\n                iv.leadingAnchor.constraint(equalTo:v.leadingAnchor),\n                iv.trailingAnchor.constraint(equalTo:v.trailingAnchor),\n            ])\n            NSLayoutConstraint.activate([\n                v.bottomAnchor.constraint(equalTo:av.view.bottomAnchor),\n                v.topAnchor.constraint(equalTo:av.view.topAnchor),\n                v.leadingAnchor.constraint(equalTo:av.view.leadingAnchor),\n                v.trailingAnchor.constraint(equalTo:av.view.trailingAnchor),\n            ])\n
Run Code Online (Sandbox Code Playgroud)\n