Я разрабатываю приложение для iOS и хочу иметь возможность воспроизводить локальный видеофайл, когда вы выбираете строку в табличном представлении. После выбора строки ячейки она переходит к AVPlayerViewController, где должно воспроизводиться видео, однако после того, как переход выполнен и AVPlayerViewController представлен, AVPlayer, который он содержит, остается пустым. Все элементы управления отображаются, но проигрыватель отображается пустым. Есть ли причина, по которой игрок не играет? Я добавил все свои видео в папку и добавил эту папку с видео в свой основной пакет, поэтому я не уверен, почему плеер не воспроизводит видео. Буду очень признателен за любые предложения относительно того, как я могу заставить игрока играть и работать. Я также запустил переход к AVPlayerViewController в раскадровке, и он переходит каждый раз, когда нажимается ячейка.
Код, в который загружаются видео:
import UIKit
import AVKit
import AVFoundation
class DrillsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var playerViewController = AVPlayerViewController()
var player = AVPlayer()
var videoURL = [URL]()
var videoUrl = [URL]()
var drillVid = URL(fileURLWithPath: String())
override func viewDidLoad() {
super.viewDidLoad()
videoUrl = [URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallBBw:Pound.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallBtwLegwPound.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallCrosswPound.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallHiLo.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/OneBallThruHoop.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallIOw:Wiper.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallJuggle.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallInOut.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwoBallWiper.mp4"),URL(fileURLWithPath: "/Users/jordanlagrone/Desktop/BlackHeartBB/BHB DrillVids/TwpBallOverDribble.mp4")]
tableView.delegate = self
tableView.dataSource = self }
Код, в котором отображается игрок:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
drillVid = videoUrl[indexPath.row]
return cell
}
Код, в котором отображается AVPlayerViewController, и проигрыватель должен воспроизводить видео, но ничего не воспроизводит, он просто пустой:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
drillVid = videoUrl[indexPath.row]. }
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "playDrill" {
let destination = segue.destination as! AVPlayerViewController
if let indexPath = self.tableView.indexPathForSelectedRow {
drillVid = videoURL[indexPath.row]
let destination = segue.destination as! AVPlayerViewController
destination.player = AVPlayer(url: drillVid)
destination.player?.play()
}
}