我是swift的新手,我想从位于服务器上的mp3文件中获取数据,(我使用了URL,例如:http://myserver.eu/file.mp3)。
我使用了一些tuto,比如http://geekyviney.blogspot.com/2015/02/extracting-data-like-thumbnail-images.html(它正在使用本地文件,我正在尝试使用来自网址的文件) 我有一个例外: 线程1:EXC_BAD_INSTRUCTION(代码= EXC_I1386_INVOP,子代码= 0x0
致命错误:在展开Optional值(lldb)时意外发现nil
我想pathForResource只适用于本地文件?谢谢你的帮助
var filePath = NSBundle.mainBundle().pathForResource("http://servername.eu/filename", ofType: "mp3")
var fileUrl = NSURL(fileURLWithPath: filePath!)
var asset = AVAsset.assetWithURL(fileUrl) as AVAsset
答案 0 :(得分:2)
您说得对,pathForResource
用于在应用程序包中本地访问文件。
要使用http
方案从URL加载数据,请使用此语法
let urlString = "http://servername/filename"
let serverURL = NSURL(string: urlString)!
if let asset = AVAsset.assetWithURL(serverURL) as? AVAsset {
// do something with the asset
}
答案 1 :(得分:1)
Swift 3版本:
let urlString = "http://servername/filename"
if let serverURL = URL(string: urlString) {
let asset = AVAsset(url: serverURL)
// do something with the asset
}
不要忘记添加正确的导入
import AVFoundation