【发布时间】:2018-02-07 17:36:34
【问题描述】:
我得到一个带有 AVCaptureMovieFileOutput 类的 mp4 视频并将其保存在应用程序的 Documents 文件夹下,但是当我尝试使用 AVPlayer 类播放视频时,我在自定义 UIView 中什么也看不到。代码下方:
player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = videoView.bounds
videoView.layer.addSublayer(playerLayer)
player.play()
我尝试将视频保存在相机胶卷中,我可以正确看到图库下的视频。
编辑:
let path = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = NSURL(fileURLWithPath: path.absoluteString)
if let pathComponent = url.appendingPathComponent("video.mp4") {
let filePath = pathComponent.path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
} else {
print("FILE PATH NOT AVAILABLE")
}
我尝试了上面的代码,输出是“FILE AVAILABLE”。该文件存储在此路径下:/var/mobile/Containers/Data/Application/27BDD2E1-815B-422B-96A9-E166BE154950/Documents/video.mp4
有人可以帮我找到解决这个问题的方法吗?
【问题讨论】:
-
你如何构造你传递给
AVPlayer的URL? -
我从 'AVCaptureMovieFileOutput' 对象中获得了 'URL'。
-
我遇到了这个问题,一个hacky的解决方案是将
"file://"(如果没有)添加到url的开头(类似于let url = URL(string: "file://\(pathComponent.path)"))。不知道解决它的“正确”方法是什么,但它对我有用 -
@LëshaTurkowski 我尝试了两种模式,但结果是一样的:黑色视图(作为背景颜色就座)。