使视频播放器与本地视频一起工作
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 有一个很好的工作示例,包括在这个答案中执行此操作的代码:
我正在尝试使用我在网上找到的这个播放器播放本地视频,这是处理获取视频 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 有一个很好的工作示例,包括在这个答案中执行此操作的代码: