我正在改善我的项目代码。
我坚持使用子文件夹调用视频的过程,因为它可以找到所有mp4文件。
应用我在互联网上找到的不同代码,但最终我破坏了所有代码,但未成功。在这方面,我将不胜感激。
附有图像的文件夹,其中包含我要分开视图基本文件夹和中间文件夹的不同视频的位置 导入UIKit 导入AVKit 导入AVFoundation
class BasicLevel: UIViewController, UITableViewDataSource, UITableViewDelegate, AVPlayerViewControllerDelegate{
var videoArray = [String]()
@IBOutlet weak var videoView: UIView!
@IBOutlet weak var videoTableView: UITableView!
var videoVC = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
videoTableView.delegate = self
videoTableView.dataSource = self
videoView.addSubview(videoVC.view)
videoVC.view.frame = videoView.frame
videoVC.showsPlaybackControls = false
let filemanager = FileManager.default
let path = Bundle.main.resourcePath!
let allItems = try? filemanager.contentsOfDirectory(atPath: path)
for singleItem in allItems! {
if singleItem.hasSuffix("mp4") {
videoArray.append(singleItem)
}
}
if videoArray.count > 0 {
playTopVideo(value: 0)
}
}
func playTopVideo(value: Int) {
let nameComponent = videoArray[value].components(separatedBy: ".")
let name = nameComponent[0]
let path = Bundle.main.path(forResource: name, ofType: "mp4")
let url = URL(fileURLWithPath: path!)
videoVC.player = AVPlayer(url: url)
videoVC.player?.play()
}
}
答案 0 :(得分:0)
首先,您负责创建捆绑软件的目录结构,因此请不要弄乱它。
第二个使用与URL相关的API。
例如,将所有mp4文件放在名为videos
的子目录中。创建真实的蓝色文件夹而不是组(黄色)文件夹至关重要。
这会将您的代码减少为
var videoArray = [URL]()
override func viewDidLoad() {
super.viewDidLoad()
videoTableView.delegate = self
videoTableView.dataSource = self
videoView.addSubview(videoVC.view)
videoVC.view.frame = videoView.frame
videoVC.showsPlaybackControls = false
videoArray = Bundle.main.urls(forResourcesWithExtension: "mp4", subdirectory: "videos")!
playTopVideo(value: 0)
}
func playTopVideo(value: Int) {
let videoURL = videoArray[value]
videoVC.player = AVPlayer(url: videoURL)
videoVC.player?.play()
}