ios - 尝试在 Xcode 7/Swift 2 中播放视频时出错

标签 ios xcode swift swift2 xcode7

当我输入视频时,我试图在 View Controller 中播放视频,但出现一个错误,如下所列。对视频播放不太熟悉,所以它应该在 View Controller 中吗?我该如何解决错误?视频存储在 xcode 中。谢谢。

import UIKit
import MediaPlayer
import AVFoundation

class AuroraViewController: UIViewController {



@IBOutlet var AuroraViewController: UIView!

var moviePlayer: AVPlayer?


private func playVideo() {
    if let path = NSBundle.mainBundle().pathForResource("Aurora", ofType:"mp4") {
        let url = NSURL(fileURLWithPath: path)

下面一行是我得到错误的地方:表达式类型不明确,没有更多上下文

        moviePlayer = AVPlayer(contentURL: url) {
            self.moviePlayer = moviePlayer
            moviePlayer.AuroraViewController.frame = self.AuroraViewController.bounds
            moviePlayer.prepareToPlay()
            moviePlayer.scalingMode = .AspectFill
            self.AuroraViewController.addSubview(moviePlayer.view)
        }
    } else {
        debugPrint("Ops, something wrong when playing video.m4v")
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    playVideo()
}




override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



}

更新 正确代码:

import UIKit 
import AVFoundation 
import AVKit 

class AuroraViewController: AVPlayerViewController { 
private func playVideo() { 
    if let path = NSBundle.mainBundle().pathForResource("Aurora", ofType: "mp4") { 
        let url = NSURL(fileURLWithPath: path) 
        player = AVPlayer(URL: url) 
    } 
    else { 
        println("Oops, could not find resource Aurora.mp4") 
    } 
} 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 
    playVideo() 
} 
}

最佳答案

这是“完全重写”。

以下内容完成了工作:

将“AVKit.framework”添加到项目设置中的“Build Phases”->“Link Binary With Libraries”。

在 Storyboard 中,将 UIViewController 的标识更改为 AuroraViewController。

生成的代码就是所需要的:

import UIKit 
import AVFoundation 
import AVKit 

class AuroraViewController: AVPlayerViewController { 
    private func playVideo() { 
        if let path = NSBundle.mainBundle().pathForResource("Aurora", ofType: "mp4") { 
            let url = NSURL(fileURLWithPath: path) 
            player = AVPlayer(URL: url) 
        } 
        else { 
            println("Oops, could not find resource Aurora.mp4") 
        } 
    } 

    override func viewDidAppear(animated: Bool) { 
        super.viewDidAppear(animated) 
        playVideo() 
    } 
}

关于ios - 尝试在 Xcode 7/Swift 2 中播放视频时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728052/

相关文章:

ios - 检测设备信息时潜在的内存泄漏

ios - UIImageView 的 cornerRadius 不工作

ios - 如何移动 UIView 并使用 Swift 以编程方式放置新的 UIView?

ios - 将 nsstring 添加到主包 ios 中的本地 html 文件

arrays - 如何快速检查一个值在嵌套字典中

ios - 使用后退按钮从 NavigationController 导航到另一个 NavigationController

ios - NSUserDefaults 在同步时崩溃

iphone - loadView的正确实现方式?

ios - 将 ViewController 嵌入到一个主视图 Controller 的多个 ContainerView 中

ios - 需要帮助将数据从 tableView 传递到另一个 viewController Swift。查看其他示例后仍然出现错误