AVPlayer pathForResource не вызывается

У меня есть видео фон для экрана приветствия приложения, но при запуске появляется только пустой экран.

Строка для пути пакета для части ресурса является совершенно правильной, поэтому опечатка не является проблемой или чем-то еще. Когда я ставлю точку останова на блок "если путь", хотя он не вызывается. Это имеет ввиду загрузку и "AVKit" и "AVFoundation" оба импортированы и ошибок нет.

Есть идеи? Спасибо!

    let moviePath = NSBundle.mainBundle().pathForResource("Ilmatic_Wearables", ofType: "mp4")

    if let path = moviePath {

        let url = NSURL.fileURLWithPath(path)
        let player = AVPlayer(URL: url)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        playerViewController.view.frame = self.view.bounds
        self.view.addSubview(playerViewController.view)
        self.addChildViewController(playerViewController)
        player.play()
    }

2 ответа

Решение

Странно, ваш код должен работать, если moviePath не ноль, как вы говорите. Проверьте этот способ:

if let moviePath != nil {
       ...
}

Обновить

Проверьте, есть ли у вас видеофайл Target Membership установлено

РЕДАКТИРОВАТЬ (13.11.2015) - Попробуйте это:

Щелкните правой кнопкой мыши, удалите видеофайл из навигатора проекта, выберите "Переместить в корзину".

Затем перетащите видео из Finder обратно в навигатор проекта.

При выборе вариантов добавления этих файлов:

  • установите флажок Копировать элементы, если необходимо
  • проверить добавить к целям

Перестройте свой проект, посмотрите, работает ли он сейчас!

Я включил пример кода, который работает для меня:

import AVFoundation
import AVKit

class ExampleViewController: UIViewController {

    func loadAndPlayFile() {

        guard let path = NSBundle.mainBundle().pathForResource("filename", ofType: "mp4") else {
            print("Error: Could not locate video resource")
            return
        }

        let url = NSURL(fileURLWithPath: path)
        let moviePlayer = AVPlayer(URL: url)
        let moviePlayerController = AVPlayerViewController()
        moviePlayerController.player = moviePlayer

        presentViewController(moviePlayerController, animated: true) {
            moviePlayerController.player?.play()
        }
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        loadAndPlayFile()
    }
}

/редактировать


Проверьте, воспроизводится ли видеофайл в iTunes. Если он воспроизводится в iTunes, он также должен воспроизводиться на симуляторе iOS и на устройстве.

Если он не воспроизводится в iTunes, но работает с VLC Media Player, Quicktime и т. Д. Его необходимо перекодировать.

iOS поддерживает множество стандартных форматов видео и стандартов сжатия, включая следующие:

Видео H.264, до 1,5 Мбит / с, 640 на 480 пикселей, 30 кадров в секунду, версия с низким уровнем сложности базового профиля H.264 с аудио AAC-LC до 160 кбит / с, 48 кГц, стереозвук в формате.m4v, Файлы.mp4 и.mov форматируют видео H.264, до 768 Кбит / с, 320 на 240 пикселей, 30 кадров в секунду, базовый профиль до уровня 1.3 с аудио AAC-LC до 160 Кбит / с, 48 кГц, стереофонический звук в Файлы.m4v,.mp4 и.mov форматируют видео MPEG-4, до 2,5 Мбит / с, 640 на 480 пикселей, 30 кадров в секунду, простой профиль со звуком AAC-LC до 160 Кбит / с, 48 кГц, стереофонический аудиовход. Форматы файлов m4v,.mp4 и.mov Многочисленные аудиоформаты, в том числе перечисленные в Audio Technologies

Другие вопросы по тегам