我正在尝试在xcode 10.1,swift 4.2,macOS应用程序中使用AVPlayer播放本地视频。我已经在UI中创建了AVKit Player View对象,并在viewController.swift中创建了出口。还创建了应该执行所有操作的按钮。您可以在此处查看代码-
import Cocoa
import AVKit
import AVFoundation
import AppKit
class ViewController: NSViewController {
@IBOutlet weak var playerView: AVPlayerView!
@IBAction func buttonAction(_ sender: Any) {
let videoURL = "/Users/ramix/Downloads/test.mp4"
let video = AVPlayer(url: URL(fileURLWithPath: videoURL))
let videoPlayer = AVPlayerView()
videoPlayer.player = video
present(videoPlayer, animator:true, completion:{
video.play()
})
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
我在多个地方看到使用过AVPlayerViewController,但是由于某种原因,我没有选择该方法的选项。此代码也返回此错误-
无法使用类型为'(AVPlayerView,动画师:布尔,完成:()->无效)'的参数列表调用'present'
我是新手,我想向您寻求帮助。
谢谢!
答案 0 :(得分:1)
似乎您已经为AVPlayerView
创建了一个出口,您可能已将其添加到Interface Builder中的视图层次结构中。因此,您无需创建新的播放器视图,只需将播放器分配到出口视图,如下所示:
self.playerView.player = video
顺便说一句,发生错误是因为present
用于呈现其他视图控制器,而不是用于显示视图。