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(),但无法正确居中。如何自定义播放器的布局,而无需从头开始构建自己的界面?
您尝试的方法是正确的:只需将子视图添加到内容覆盖视图即可。但是您遗漏了一步:您必须同时给出子视图和内容覆盖视图约束,以使它们完全覆盖播放器控制器\xe2\x80\x99s视图。
\n\n示例(我的av是你的controller):
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 ])\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |