0
我正在嘗試從soundcloud播放歌曲。由於iOS-SDK已經停產,我必須自己做所有的認證和流媒體。在播放歌曲時,我基本上會用Alamofire創建一個流,並將接收數據解析爲AVAudioplayer實例。然後它會播放一秒鐘的聲音並暫停播放。我錯過了什麼?AVAudioplayer只播放數據第二秒
class SoundcloudPlayer: NSObject, AVAudioPlayerDelegate {
var clientProvider: SoundcloudConnectorProvider!
var track: SoundcloudTrack?
private var stream: Request?
private var audioData = NSMutableData()
private var audioPlayer: AVAudioPlayer!
override init() {
super.init()
}
func play(){
if let client = clientProvider?.currentClient() where client.hasUnexpiredAccessToken() && track != nil{
stream = client.request(.GET, self.track!.url!).stream({ (data) -> Void in
self.audioData.appendData(data)
if self.audioPlayer == nil{
do{ self.audioPlayer = try AVAudioPlayer(data: self.audioData)} catch {print("error") }
self.audioPlayer.delegate = self
self.audioPlayer.play()
}
print(self.audioPlayer.data?.length)
}).progress({ (read, total, expected) -> Void in
Async.main(block: {() -> Void in
//print("\(total)/\(expected)")
})
})
}
}
}