Новое в Свифте! Я пытаюсь заставить приложение воспроизводить видео из моих ресурсов при нажатии кнопки. У меня есть этот метод в моем ViewController:
if let path = Bundle.main.path(forResource: "Cypress", ofType: "mov") {
let player = AVPlayer(url: URL(fileURLWithPath: path))
// Create a new AVPlayerViewController and pass it a reference to the player.
let controller = AVPlayerViewController()
controller.player = player
// Modally present the player and call the player's play() method when complete.
self.present(controller, animated: true) {
player.play()
}
}
Однако, когда видео начинает воспроизводиться, это черный экран, но звук воспроизводится правильно. Есть ли какие-нибудь быстрые решения для этого? Я использую Xcode версии 12.2. Буду признателен за любой совет спасибо :)
Ага! Видео должно быть в формате mp4, а не в формате mov. Спасибо!
Проблема в самом видеофайле/кодировке.
Обманчиво то, что формат Quicktime «.mov» — это не видеокодек, а формат контейнера аудио/видео, который может содержать видео и аудио (и некоторые другие вещи) в любом количестве кодеков сжатия (h.264, mpeg2, ProRes, MJPEG). , AAC, mp3 и т. д.) … Ваши файлы не работают, потому что они содержат видео, сжатое с помощью кодека, который iOS не поддерживает.
От @alexkent в этот ТАК ответ на другой пост.
Я не думаю, что .mov
обязательно вам не подойдет, но вы должны убедиться, что он закодирован таким образом, чтобы он был совместим с iOS. Итак, как вы упомянули в комментариях, использование .mp4
гарантирует, что видео будет закодировано совместимым с iOS способом.
Скорее всего проблема в самом видеофайле/кодировке. stackoverflow.com/questions/27753755/…