使视频播放器与本地视频一起工作

Make Video Player Work With Local Video

我正在尝试使用我在网上找到的这个播放器播放本地视频,这是处理获取视频 URL 的代码。它似乎适用于本地视频,但当我尝试时它不起作用。

private var filepath: String!
public var path: String! {
    get {
        return filepath
    }
    set {
        // Make sure everything is reset beforehand
        if(self.playbackState == .Playing){
            self.pause()
        }

        self.setupPlayerItem(nil)

        filepath = newValue
        let remoteUrl: NSURL? = NSURL(string: newValue)
        if remoteUrl != nil && remoteUrl?.scheme != nil {
            let asset = AVURLAsset(URL: remoteUrl!, options: .None)
            self.setupAsset(asset)

        } else {
            let localURL: NSURL? = NSURL(fileURLWithPath: newValue)
            let asset = AVURLAsset(URL: localURL!, options: .None)
            self.setupAsset(asset)

        }
    }
}

我将此代码放在另一个视图控制器中,我希望视频在其中 运行 并将路径设置为下面声明的 URL 变量...

let path = NSBundle.mainBundle().pathForResource("VideoName", ofType: "mov")

而且由于某种原因它不起作用。我很可能做错了什么。这是怎么回事?如果您需要更多信息,请回复。谢谢!

我想你想用浏览器播放本地视频文件?

出于安全原因,浏览器通常无法自行访问本地文件,但您可以让用户选择本地视频文件,然后在浏览器中播放。从安全角度来看,这是有道理的,因为用户必须实际选择视频,因此默认情况下他们会批准播放。

fiddle 有一个很好的工作示例,包括在这个答案中执行此操作的代码: