Ios 如何播放从解析服务器获取的AAC文件?
这是我的程序中的一段代码片段。我从PFFile中获取数据,获取NSURL,最后是NSDATA,并将其传递给我的音频播放器。但是什么也没演,我也不知道为什么Ios 如何播放从解析服务器获取的AAC文件?,ios,swift,audio,parse-platform,avaudioplayer,Ios,Swift,Audio,Parse Platform,Avaudioplayer,这是我的程序中的一段代码片段。我从PFFile中获取数据,获取NSURL,最后是NSDATA,并将其传递给我的音频播放器。但是什么也没演,我也不知道为什么 var audioFile: PFFile = sound!["file"] as! PFFile audioFile.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in if (error == nil) {
var audioFile: PFFile = sound!["file"] as! PFFile
audioFile.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if (error == nil) {
let audioURLString = audioFile.url!
let audioURL = NSURL(string: audioURLString)!
println(audioURL) //<-- this prints http://files.parsetfss.com/1d4f1088-a07c-43c7-ada2-7f246e6a8167/tfss-db262c85-f6ba-4a5e-a065-9f9e345a929a-sound.aac
let audioData = NSData(contentsOfURL: audioURL)!
println(audioData) // <--this prints 0000001c 66747970 4d344120 00000000....
let player = AVAudioPlayer(data: audioData, error: nil)
println(player) // <-- this prints <AVAudioPlayer: 0x174200200>
player.play()
}
}
var audioFile:PFFile=sound![“文件”]as!PFFile
audioFile.getDataInBackgroundithBlock{(imageData:NSData?,错误:NSError?->中的无效
如果(错误==nil){
让audioURLString=audioFile.url!
让audioURL=NSURL(string:audioURLString)!
println(audioURL)//只要看一下代码,就可以从parse(audioURL)中获得一个有效的url,因此,不要使用AVAudioPlayer(我相信如果内存很好的话,这需要一个本地url),只需创建一个新的AVPlayer实例,传入audioURL或从audioURL创建一个AVPlayerItem并将其传递给新的AVPlayer。当然,如果您希望“Player”在方法结束后出现,您应该创建一个属性。好的,所以我添加了var playerItem=AVPlayerItem(URL:audioURL)var Player=AVPlayer(playerItem:playerItem)player.play()“
但它的行为仍然相同,@mdb983我相信您的问题与您在后台线程上创建项目/播放器有关。在回调之外创建播放器,并将playerItem添加到主队列中。就是这样!我使用dispatch_asynch在主线程上播放它:)谢谢