我正在尝试实现一个AVPlayer,它可以从URL加载和播放视频。这个AVPlayer被放置在一个由按钮调用的函数中。以下是我的当前代码:
import UIKit
import AVKit
import AVFoundation
class MovieDetailViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func playTrailer(_ sender: Any) {
guard let videoURL = URL(string: "http://caribbeancinemas.com/img/trailers/6134.mp4") else {
return
}
let player = AVPlayer(url: videoURL)
let controller = AVPlayerViewController()
controller.player = player
present(controller, animated: true) {
player.play()
}
}
}
当我在模拟器上运行应用程序时,视频实际上可以播放,但是发生了两个问题:
- 控制台中会收到以下错误信息:
- 视频播放器不会立即开始播放视频(缓冲),而似乎要等到完整的视频下载完毕后才开始播放。
2018-03-31 16:49:53.389148-0400 MoviesApp[18928:3137301] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for sharedAudioPresentationContext 2018-03-31 16:49:53.497987-0400 MoviesApp[18928:3137301] [framework] CUICatalog: Invalid asset name supplied: '(null)' 2018-03-31 16:49:53.498937-0400 MoviesApp[18928:3137301] [framework] CUICatalog: Invalid asset name supplied: '(null)' 2018-03-31 16:49:53.857871-0400 MoviesApp[18928:3138058] Task <223C4724-B3B5-4EBE-9AE0-5BA3C30B37C6>.<2> finished with error - code: -999 2018-03-31 16:49:55.365686-0400 MoviesApp[18928:3138196] Task <95E91605-9B52-4212-97B3-47E73CE21B8B>.<1> finished with error - code: -999
提前致谢!