我正在尝试在 xcode 10.1、swift 4.2、macOS 应用程序中使用 AVPlayer 播放本地视频。我在 UI 中创建了 AVKit Player View 对象,并在 viewController.swift 中制作了 socket 。还在所有操作应该发生的地方创建了按钮。你可以在这里看到代码 -
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, animator: Bool, completion: () -> Void)”的参数列表调用“present”
我是 swift 的新手,想寻求您的帮助。
谢谢!
最佳答案
您似乎已经为 AVPlayerView
创建了一个导出,您可能已将其添加到 Interface Builder 的 View 层次结构中。所以你不需要创建一个新的播放器 View ,只需像这样将播放器分配给导出 View :
self.playerView.player = video
顺便说一句,错误的发生是因为 present
用于呈现其他 View controllers,而不是用于显示 View 。
关于ios - 尝试使用 AVPlayer 播放视频时收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54334793/