ios - 尝试使用 AVPlayer 播放视频时收到错误

标签 ios swift

我正在尝试在 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/

相关文章:

html - 页脚卡住在 iPhone 中屏

ios - 每秒保存到核心数据性能

ios - 在应用程序内登录 iCloud

ios - 快速创建自定义 TableViewCell

ios - Swift 字符串中的换行符和/或回车符

ios - 使用 iphone/ipad 扫描或阅读答卷上包含光学标记的图像

ios - iPad 纹理加载差异(32 位与 64 位)

ios - react-native-maps 为每个区域填充颜色

ios - 无法从 RLMResult 获取对象(Swift)

arrays - 快速将 PFObject 数组转换为自定义 PFSubclass