我正在将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/

10-10 17:50