【问题标题】:Cannot stream video with swift 2 AVPlayerViewController无法使用 swift 2 AVPlayerViewController 流式传输视频
【发布时间】:2016-02-26 09:09:45
【问题描述】:

我被困在一个问题上的时间最长。我正在尝试从我的服务器流式传输视频。在 Swift 1 中,我使用了 MPMovieViewController,但它在 swift 2/iOS9 中已被贬值。我一直在阅读有关使用 AVKit 和 AVFoundation 的消息,但我经常收到 AVPlayer 错误。它是:

调用中的参数标签不正确(有 'URL:',预期为 'coder:')

有人可以告诉我我做错了什么吗?

    let url = NSURL(string: "http://...")

    let player = AVPlayer(URL: url) //error appears here with the 'URL'
    let playerController = AVPlayerViewController()

    playerController.player = player
    self.addChildViewController(playerController)
    self.view.addSubview(playerController.view)
    playerController.view.frame = self.view.frame

    player.play()

提前致谢。

【问题讨论】:

    标签: swift video stream swift2


    【解决方案1】:

    好的,所以我使用 import AVkit 方法。转到您的目标文件并转到常规。添加 AVKit.framework,我确保它是嵌入的以及链接的框架和库。然后我去创建一个新文件并将其作为子类 AVPlayerViewController。然后我确保在该类中导入了 AVKit。接下来我执行以下代码并转换到该视图并每次观看视频播放。调用该函数,这应该可以工作。

        func playVideo() {
    
            let myBaseUrl = "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"
    
            guard let url = NSURL(string: myBaseUrl) else {
                print("movie trailer not found")
                return
            }
          player = AVPlayer(URL: url)
    
          player?.play()
    
        }
    

    【讨论】:

    • 您好 mn1,感谢您的评论。我按照您的指示进行操作,但在您的 player = AVPlayer(URL: url) 行仍然收到相同的错误。这件事快把我逼疯了。我不明白为什么会出现这个错误。
    【解决方案2】:

    您需要解开可选的url,例如带一个! (砰):

    let player = AVPlayer(URL: url!)
    

    【讨论】:

    • 您好节奏拳手,感谢您的回复。我试过添加!到网址!,但我有同样的错误信息。
    • 可能会显示更多周围的代码。错误信息没有任何意义
    • 您好,我认为您是对的。我创建了一个新项目并使用了 mn1 提供的代码并且它工作正常。切换到有问题的项目后,我发现它也有效......不知道为什么。可能是一个错误?无论如何,非常感谢你们帮助我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2011-11-30
    • 2016-09-24
    相关资源
    最近更新 更多