我正在将Back4app用作解析服务器
我正在尝试从Prase流式传输音频
一切正常,但是如果我在表视图上单击任何索引(索引0除外),则会出现错误“严重错误:在展开可选值时意外发现nil”
我不知道为什么当我单击索引0时它可以正常工作,但是其他索引我都出错了!
func grabSong() {
let SongQuery = PFQuery(className: "Songs")
SongQuery.getObjectInBackground(withId:iDArray[SelectedSongNumber!] ,block: { (object : PFObject?, error : Error?) -> Void in
if let AudioFileURLTemp : PFFile = object?.value(forKey: "SongFile") as? PFFile {
print(AudioFileURLTemp)
audioP = AVPlayer(url: NSURL(string: AudioFileURLTemp.url!) as! URL)
audioP.play()
}
})
}
我在这条线上出现错误:
audioP = AVPlayer(url: NSURL(string: AudioFileURLTemp.url!) as! URL)
最佳答案
我发现了为什么我得到了错误。这是因为某些歌曲名称中有空格,但第一首歌曲的名称中没有空格。因此,我尝试在浏览器中复制链接,并查看浏览器如何处理空格。我发现它将%20替换为空格。
因此,我用“%20”替换了每个空格,现在它可以工作了。
正确的代码
func grabSong() {
let SongQuery = PFQuery(className: "Songs")
SongQuery.getObjectInBackground(withId:iDArray[SelectedSongNumber] ,block: { (object : PFObject?, error : Error?) -> Void in
if let AudioFileURLTemp : PFFile = object?.value(forKey: "SongFile") as? PFFile {
var songID = AudioFileURLTemp.url!.replacingOccurrences(of: " ", with: "%20")
audioP = AVPlayer(url: URL(string:songID)!)
audioP.play()
}
})
}
关于swift - 在Swift 3中流式传输来自解析的音频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41469184/