gpt4 book ai didi

ios - 如何在ios 12中将本地视频嵌入到UIView中

转载 作者:行者123 更新时间:2023-11-30 11:05:57 25 4
gpt4 key购买 nike

我用来在 UIView 中嵌入本地视频的代码在 IOS 12 上不起作用。音频正在播放,但出现黑屏。

来自苹果开发者网站:

不要子类化 AVPlayerViewController。不支持重写此类的方法,并且会导致未定义的行为。

代码在 IOS 11 上运行良好,知道我需要在代码中更改什么吗?

谢谢

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {

var avPlayer: AVPlayer!

override func viewDidLoad() {

super.viewDidLoad()
let filepath: String? = Bundle.main.path(forResource: "qidong", ofType: "mp4")
let fileURL = URL.init(fileURLWithPath: filepath!)


avPlayer = AVPlayer(url: fileURL)


let avPlayerController = AVPlayerViewController()
avPlayerController.player = avPlayer
avPlayerController.view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)

avPlayerController.showsPlaybackControls = false

avPlayerController.player?.play()
self.view.addSubview(avPlayerController.view)
}
}

最佳答案

您需要添加 AVPlayerViewController 作为 subview Controller ,如下所示:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {

var avPlayer: AVPlayer!

override func viewDidLoad() {

super.viewDidLoad()
let filepath: String? = Bundle.main.path(forResource: "qidong", ofType: "mp4")
let fileURL = URL.init(fileURLWithPath: filepath!)


avPlayer = AVPlayer(url: fileURL)


let avPlayerController = AVPlayerViewController()
avPlayerController.player = avPlayer
avPlayerController.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)

avPlayerController.showsPlaybackControls = false

avPlayerController.player?.play()
self.addChild(avPlayerController)
self.view.addSubview(avPlayerController.view)
avPlayerController.didMove(toParent: self)
}

如果您不这样做,那么 AVPlayerViewController 可能会提前发布。

另一个小问题,但不要使用 UIScreen 的大小,而是使用 View Controller View 的框架(或者更好地执行诸如使用自动布局之类的操作)。

关于ios - 如何在ios 12中将本地视频嵌入到UIView中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52726377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com