我正在开发一个教程应用,其中包含向您显示说明的视频。我想知道在应用程序上存储视频的最佳方法是什么,将视频直接存储在应用程序上或提供视频的URL并将其放入应用程序中?
答案 0 :(得分:0)
<强> 1。添加视频文件
将视频(我们称之为video.m4v)添加到您的Xcode项目
<强> 2。检查您的视频是否在Bundle
中打开Project Navigator cmd + 1
然后选择您的项目根&gt;你的目标&gt;构建阶段&gt;复制捆绑资源。
你的视频必须在这里。如果不是,那么您应该使用加号按钮
添加它第3。代码强>
打开View Controller并编写此代码。
导入UIKit 导入AVKit 导入AVFoundation
类ViewController:UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
playVideo()
}
private func playVideo() {
guard let path = Bundle.main.path(forResource: "video", ofType:"m4v") else {
debugPrint("video.m4v not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
player.play()
}
}
}
答案 1 :(得分:0)
每种都有优点和缺点。
将视频与应用优势捆绑在一起:
提供用于流式传输视频的网址:
还有一种混合方法,即应用程序没有视频,但在首次使用时会下载。您甚至可以让应用检查更改并下载更新版本。这仍然意味着您正在使用设备存储来存储视频。您还必须确保这符合App Store指南,并且不会将其视为从已审核版本更改应用程序。
答案 2 :(得分:0)
便宜且最好的方法是使用App细化。在您的捆绑中添加视频。将其添加到App thinning(在项目中 - 目标 - 资源标签)。
在集合视图或tableview中的应用程序中使用plist数组或Json数组显示视频缩略图(您将其存储在资源中)。当用户使用NSBundleResourceRequest单击任何单元格下载该特定视频时。获取下载URL并在AVPLayer中显示。